tcp注意点,python简易聊天功能的实现

python用socket实现聊天功能:主要分为两个部分,一部分为服务器端,一部分为服务器端,之间能够进行简易的聊天。
详细总结了tcp的注意点。

tcp注意点

1、TCP 服务器一般情况下都需要绑定端口号,否则客户端找不到这个服务器
2、TCP 客户端一般不绑定端口号,使用随机生成的端口号即可
3、TCP 服务器中通过 listen 可以将 socket 创建出来的主动套接字变为被动的,这是做 TCP 服务器时必须要做的
4、当 TCP 客户端和服务端建立好连接才可以收发数据,UDP 是不需要建立连接,直接就可以发送数据当一个 TCP 客户端和服务端连接成功后,服务器端会有1个新的套接字,这个套接字用来标记这个客户端,单独为这个客户端服务
5、listen 后的套接字是被动套接字,用来接收新的客户端的链接请求的,而accept返回的新套接字是标记这个新客户端的关闭 listen 后的套接字意味着被动套接字关闭了,会导致新的客户端不能够链接服务器,但是之前已经链接成功的客户端正常通信。
6、关闭 accept 返回的套接字意味着这个客户端已经服务完毕
7、当客户端的套接字调用 close 后,服务器端会 recv 解堵塞,并且返回的长度为0,因此服务器可以通过返回数据的长度来区别客户端是否已经下线

服务器代码部分

# 创建套接字
# 绑定本地信息
# 设为监听模式
# 接收客户端请求
# 处理客户端请求信息
# 关闭套接字
import socket


# 创建套接字
tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定本地信息
tcp_socket.bind(("127.0.0.1",8080))
# 设为监听模式
tcp_socket.listen()
# 接收客户端请求
client,client_port = tcp_socket.accept()
while True:
    # 处理客户端请求信息
    client_info = client.recv(1024)
    print("%s=>%s" %(client_port,client_info.decode("utf-8")))
    # 向客户端返回响应的信息
    client.send("copy that!\n".encode("utf-8"))
# 关闭套接字
client.close()
tcp_socket.close()

客户端代码部分

# 建立套接字
# 连接服务器
# 向服务器发送信息
# 接受服务器返回信息
# 关闭套接字
import socket


# 建立套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
tcp_socket.connect(("127.0.0.1",8080))
# 向服务器发送信息
tcp_socket.send("qw".encode("utf-8"))
# 接受服务器返回信息
rece_info = tcp_socket.recv(1024)
print(rece_info.decode("utf-8"))
# 关闭套接字
tcp_socket.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值