通信中UDP/TCP客户端

TCP连接套接字也称为流套接字。主要提供序列化的、可靠的、不重复的数据,它可以将消息拆分成多个片段,确保每一条片段都顺利到达目的地,然后按照顺序组合在一起,最后将完整的消息传递给正在等待的应用程序。   
UDP是一个无连接的套接字又称为数据报类型的套接字。在传输过程中无法保证其顺序性、可靠性、重复性,事实上所发送的报文有可能最后并没有到达,也有可能存在重复的消息。
客户端:因特定请求而联系服务器,接收服务并处理相关事务的一方。客户端可以持续向服务器发送请求,也可以在结束事务请求后不再发出请求。

TCP客户端:

这里写图片描述
socket.AF_INET #internet通信
伪代码:
1.socket 创建套接字
2.connect 与服务器建立连接
3.send/recv 发送和接收数据
4.close 关闭套接字
from socket import *

客户端

创建套接字

tcp_socket = socket(AF_INET,SOCK_STREAM) #AF_INETinternet通信#SOCK_STREAM 流式套接字,用在tcp协议中

bind绑定ip/端口

dest_ip = input(‘请输入ip:\n’)
dest_port = input(‘请输入端口:\n’)
data = input(‘请输入数据:\n’)

与服务器建立连接connect

tcp_socket.connect((dest_ip,dest_port))

发送数据/接收数据1024

tcp_socket.send(data.encode(‘utf-8’)) #encode是将str(字符串)类型转换成bytes(二进制)类型
recv_socket = tcp_socket.recv(1024)

输出接收到的数据

print(‘接收到的数据是:’,recv_socket.decode(‘utf-8’)) #decode是将bytes类型转换为str类型

关闭套接字

tcp_socket.close()

UDP客户端

这里写图片描述

创建套接字

udp_socket_client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

绑定接口

udp_socket_client.bind((”,8081))

发送或者接受数据

send_data = ‘habiiah’
udp_socket_client.sendto(send_data.encode(‘utf-8’),(‘192.168.1.172’,8080))

接收数据

data_info,ip_info = udp_socket_client.recvfrom(1024)
print(data_info.decode(‘utf-8’))
print(ip_info)

关闭套接字

udp_socket_client.close()

猜你喜欢

转载自blog.csdn.net/weixin_42986099/article/details/81746688