Network communication socket

UDP protocol to send data

import socket

#1、创建套接字
#2、使用套接字接收 /发送数据
#3、关闭套接字

def main():
	# 创建udp socket 套接字  socket.AF_INET(IPV4)   socket.SOCK_DGRAM(UDP协议)
	udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
	send_data = "nihao"
	send_data = send_data.encode('gbk')
	udp_socket.sendto(send_data,('192.168.0.162',8080))
	udp_socket.close() 

if__name__ == '__main__' 
	main()

UDP receive data

#1、创建套接字
#2、绑定本地信息(IP 和 端口)
#3、接收数据
#4、打印数据
#5、关闭套接字

import socket

def main():
	# 创建udp socket 套接字  socket.AF_INET(IPV4)   socket.SOCK_DGRAM(UDP协议)
	udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
	# 绑定ip 和端口
	bin_addr = ('',7789)
	udp_socket.bin(bind_addr)  # 括号内为元组
	
	recv_data = udp_socket.recfrom(1024)
	print(recv_data)

if__name__ == '__main__' 
	main()

udp chat (send + receive)

import socket
def send_data(udp_socket):
	send_data = input("输入发送内容")
	dest_ip = input("发送IP")
	dest_port = input("发送端口")
	send_data = udp_socket.sendto(send_data.encode('gbk'),(dest_ip,dest_port))
		print(recv_data)
		
def recv_data(udp_socket):
	recv_data = udp_socket.recfrom(1024)
		print(recv_data)
		
	

def main():
	# 创建udp socket 套接字  socket.AF_INET(IPV4)   socket.SOCK_DGRAM(UDP协议)
	udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
	# 绑定ip 和端口
	bin_addr = ('',7789)
	udp_socket.bin(bind_addr)  # 括号内为元组
	
	while True:
		send_data(udp_socket)
		recv_data(udp_socket)
	udp_socket.close()
		

if__name__ == '__main__' 
	main()

TCP client

#1、socket 创建套接字
#2、连接服务器
#3、接收数据(设置接收最大字节 )
#4、关闭套接字

import socket

def main():
	tcp_client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	server_ip = input("server ip")
	server_port = input("server port")
	# 连接服务器
	tcp_client.connect((server_ip,server_port))
	# 向客户端发送数据
	send_data = input("发送数据")
	tcp_client.send(send_data.encode())
	#接收服务器数据
	recv_data = tcp_client.recv(1024)
	print(recv_data)

if__name__ == '__main__' 
	main()

TCP server

#1、socket 创建套接字
#2、bin绑定IP和portr
#3、listen 使用套接字变成可别动连接
#4、accept 等待客户端连接
#5、recv/send 接收发送数据

import socket

def main():
	tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	# 绑定信息
	tcp_server.bin(("192.168.0.168",7989))
	# 主动变被动
	tcp_server.listen(128)   # 最大连接数
	# 有客户端连接时,服务端生成新的socket
	new_client_socket,client_addr = tcp_server.accept()
	# 用新的socket 进行接收客户端数据
	recv_data = new_client_socket.recv(1024)
	print(recv_data)
	#用新的socket发送数据
	new_client_socket.send("send_data",encode('gbk'))
	
	#关闭套接字(新、旧)
	new_client_socket.close()
	tcp_server.colse()
	

if__name__ == '__main__' 
	main()

The TCP server serves multiple clients
(multiple connections, but only one at the same time, and the next one when disconnected)

import socket

def main():
	tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	# 绑定信息
	tcp_server.bin(("192.168.0.168",7989))
	
	while True:    # 为多个客户端服务
		# 主动变被动
		tcp_server.listen(128)   # 最大连接数
		# 有客户端连接时,服务端生成新的socket
		new_client_socket,client_addr = tcp_server.accept()
		
		while True:  # 可接收同一客户端的多条数据
			# 用新的socket 进行接收客户端数据
			recv_data = new_client_socket.recv(1024)
			print(recv_data)
			if recv_data.decode('gbk'):
				#用新的socket发送数据
				new_client_socket.send("send_data",encode('gbk'))
			else:
				break			
		#关闭套接字(新、旧)
		new_client_socket.close()
	tcp_server.colse()
	

if__name__ == '__main__' 
	main()
Published 50 original articles · Likes3 · Visits 1799

Guess you like

Origin blog.csdn.net/weixin_43056654/article/details/103996130