基于TCP连接的socket套接字编程
基于TCP协议的套接字编程(简单)
服务端
import socket
server = socket.socket()
server.bind(
('127.0.0.1', 9999)
)
server.listen(5)
conn, addr = server.accept()
print(addr)
data = conn.recv(1024).decode('utf-8')
print(data)
conn.send('来自服务端消息:我不好'.encode('utf-8'))
conn.close()
server.close()
客户端
import socket
client = socket.socket()
client.connect(
('127.0.0.1', 9999)
)
client.send('来自客户端消息:你好'.encode('utf-8'))
data = client.recv(1024).decode('utf-8')
print(data)
client.close()
基于TCP协议的套接字编程(复杂)
服务端
import socket
server = socket.socket()
server.bind(
('127.0.0.1', 9999)
)
server.listen(5)
conn, addr = server.accept()
print(addr)
while True:
# 接收客户端发送来的消息
data = conn.recv(1024).decode('utf-8')
print(data)
if data == 'q':
break
send_msg = input('server--->client: ').encode('utf-8')
conn.send(send_msg)
conn.close()
server.close()
客户端
import socket
client = socket.socket()
client.connect(
('127.0.0.1', 9999)
)
while True:
send_msg = input('client---> server:')
client.send(send_msg.encode('utf-8'))
if send_msg == 'q':
break
# 服务端返回的数据
data = client.recv(1024).decode('utf-8')
print(data)
client.close()
服务端服务多个客户
服务端
import socket
server = socket.socket()
server.bind(
('127.0.0.1', 8888)
)
server.listen(5) # 半连接数,等待的用户
while True:
conn, addr = server.accept()
print(addr)
while True:
try:
data = conn.recv(1024).decode('utf-8')
print(data)
# mac\linux的bug:b''
if len(data) == 0:
continue
if data == 'q':
break
send_msg = input('server--->client:').encode('utf-8')
conn.send(send_msg)
except Exception as e:
print(e)
break
conn.close()
客户端
import socket
client = socket.socket()
client.connect(
('127.0.0.1', 8888)
)
while True:
send_msg = input('client--->server:')
client.send(send_msg.encode('utf-8'))
if send_msg == 'q':
break
data = client.recv(1024).decode('utf-8')
print(data)
client.close()
基于TCP连接的socket套接字编程的更多相关文章
- 基于TCP协议的socket套接字编程
目录 一.什么是Scoket 二.套接字发展史及分类 2.1 基于文件类型的套接字家族 2.2 基于网络类型的套接字家族 三.套接字工作流程 3.1 服务端套接字函数 3.2 客户端套接字函数 3.3 ...
- 基于UDP协议的socket套接字编程
目录 一.UDP套接字简单示例 1.1 服务端 二.客户端 三.UPD套接字无粘包问题 3.1 服务端 3.2 客户端 四.qq聊天 4.1 服务端 4.2 客户端1 4.3 客户端2 4.4 运行结 ...
- Linux之socket套接字编程20160704
介绍套接字之前,我们先看一下传输层的协议TCP与UDP: TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UD ...
- linux网络环境下socket套接字编程(UDP文件传输)
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...
- linux网络编程-(socket套接字编程UDP传输)
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...
- socket套接字编程 HTTP协议
socket套接字编程 套接字介绍 1. 套接字 : 实现网络编程进行数据传输的一种技术手段 2. Python实现套接字编程:import socket 3. 套接字分类 >流式套接 ...
- socket 套接字编程
今日内容 socket 套接字编程 简易服务端与客户端代码实现 通信循环 黏包现象(TCP协议) 报头制作.struct 模块.封装形式 内容详细 一.socket 套接字编程 实现一款能够进行数据交 ...
- Learning-Python【28】:基于TCP协议通信的套接字
什么是 Socket Socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Sock ...
- Python 31 TCP协议 、socket套接字
1.TCP协议 可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割. (1)三次握手建链接( ...
随机推荐
- ABAP 字符串换行符处理
今天发现BW系统从K3系统数据库抽取会计科目的描述时,转换出错. 从监控器上看是值2KO 845 412D#有问题,但不知道有什么问题,检查后感觉是符号#的问题. 在转换中添加代码,替换#,发现没有起 ...
- C#(1)运用C#实现一键从Word文档转换TXT文本的功能
有想直接从Word转TXT文本的可以看看,懒得复制粘贴的也可以使用下,方便而快捷!! 首先打开vs2012创建一个简单的form窗体: 里面主要的就是一个存放Word文档的button和一个执行的bu ...
- 使用NDK(r20)编译FFmpeg
前两天在论坛上看到一个问题,大意是怎么在UBUNTU下使用NDK-r20编译FFmpeg.我第一反应是不该用r20,因为我在很早前用过没有gcc版本的NDK,发现有很多问题不能编译,就立马回复了个使用 ...
- Linux下使用 github+hexo 搭建个人博客01-hexo搭建
为什么要搭建自己的博客系统? 原因有好几个吧,归类如下:1.自己搭建博客系统很有成就感,可以自己选定页面风格和页面排版: 2.自己搭建博客系统可以根据自己的需要添加各种插件功能,因此整体上比网上的第三 ...
- WPF datagrid 列按钮使用
原文:WPF中使用DataGrid时操作列按钮问题 <DataGrid x:Name="datagrid" AutoGenerateColumns="Fal ...
- 快速破解Goland
两种激活方式永久激活:推荐优先使用,永久有效有效期激活:如果你实在激活不了又着急使用,这是备选激活方案,简单快捷 一.永久激活 1.下载新版破解补丁 点击链接 https://pan.baidu.co ...
- github.com/pkg/errors库学习
为了理解go error,进一步学习github.com/pkg/errors作的训练. http://www.shtml.net/article/content/tok/48369/id/37733 ...
- vue 借用element-ui实现头像上传 axios发送请求
<!-- 上传组件 --> <!-- 总结一下: action 写图片上传请求的路径 去路径哈 show-file-list就是当你上传时,是否会显示出上传的是哪一个图片,一般为fa ...
- JavaScript内置对象及常见API
一.全局属性 Infinity:表示正无穷大 NaN:非数字值 undefined:未定义的值 decodeURI():对encodeURI()转义的字符串解码 decodeURIComponent( ...
- WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据
原文:WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据 功能阐述 就上面那图片 刚开始 考虑使用 RowHeaderTemplate 来实现 发现总绑定不上数据 ...