码迷,mamicode.com
首页 > 其他好文 > 详细

socket建立tcp、udp链接

时间:2019-10-04 21:09:06      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:客户   lis   int   orm   end   size   data   use   send   

建立不中断tcp链接:

tcp服务端:

 1 from socket import *
 2 
 3 ip_port = (192.168.0.101, 8000)
 4 buffer_size = 1024
 5 back_log = 5
 6 
 7 s_server = socket(AF_INET, SOCK_STREAM)  # 启用tcp链接
 8 s_server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)  # 允许重复使用IP地址
 9 s_server.bind(ip_port)  # 服务端绑定ip端口
10 print(服务端已启动,地址为:{},端口为:{}.format(*ip_port))
11 s_server.listen(back_log)  # 监听客户端数量
12 while True:
13     conn, addr = s_server.accept()  # 等待客户端连接
14     print(客户端已连接:, addr)
15     while True:
16         try:  # 如果客户端主动断开连接,则捕获异常,断开连接
17             data = conn.recv(buffer_size)
18             if not data: continue  # 若客户端发来消息为空,则重新接受——否则会导致tcp处于挂起在接收状态
19             print(客户端发来消息:, data.decode(utf8))
20             conn.send(data.upper())  # 收到的消息是二进制格式,所以回复的时候不需要处理编码
21         except Exception as e:
22             print(e)
23             break
24     conn.close()

tcp客户端:

 1 from socket import *
 2 
 3 ip_port = (192.168.0.101, 8000)
 4 buffer_size = 1024
 5 
 6 s = socket(AF_INET, SOCK_STREAM)
 7 s.connect(ip_port)
 8 while True:
 9     data = input(::>).strip()
10     s.send(data.encode(utf8))
11     msg = s.recv(buffer_size)
12     print(收到来自服务端的消息:, msg)

 

注意:tcp是需要建立双向连接的,所以需要监听客户端的链接,同时根据所建立的链接来收发消息。并且tcp的IP和端口绑定后(形成一个通道),建立连接之后不允许其他链接接入。

 

socket建立tcp、udp链接

标签:客户   lis   int   orm   end   size   data   use   send   

原文地址:https://www.cnblogs.com/wjlv/p/11622826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!