udp创建socket
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
localaddr = ("",1234)
udp_socket.bind(localaddr)
udp_socket.sendto("xxxx".encode("utf-8") (“127.0.0.1”,8080))
udp_socket.recvfrom(1024)(1024是接收的最大数据量)
udp_socket.close()
使用udp设计一个聊天器
import socket
def send_msg(udp_socket):
"""发送消息"""
dest_ip = input("请输入对方的ip:")
dest_port =int( input("请输入对方的port:"))
send_data = input("请输入要发送的数据:")
udp_socket.sendto(send_data.encode("utf-8"),(dest_ip,dest_port))
def recv_msg(udp_socket):
"""接收信息"""
recv_data = udp_socket.recvfrom(1024)
print("%s:%s" % (str(recv_data[1]),recv_data[0].decode("utf-8")))
def main():
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp_socket.bind(("", 7788))
while True:
print("----xxx聊天器----")
print("1:发送消息")
print("2:接收消息")
print("0:退出系统")
op = input("请输入功能:")
if op == "1":
send_msg(udp_socket)
elif op == "2":
recv_msg(udp_socket)
elif op == "0":
break
else:
print("输入有误。。。")
if __name__ =="__main__":
main()
tcp创建socket
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.bind(("",7890))
tcp_server_socket.listen(128)
print("----1----")
new_client_socket,client_addr = tcp_server_socket.accept()
print("----2---")
print(client_addr)
recv_data = new_client_socket.recv(1024)
print(recv_data)
new_client_socket.send("hahahaha",encode("utf-8"))
new_client_socket.close()
tcp_server_socket.close()
使用tcp循环服务多个客户端且实现为一个客户端多次服务
mport socket
def main():
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.bind(("",7890))
tcp_server_socket.listen(128)
while True:
print("等待一个新的客户端的到来。。。")
new_client_socket,client_addr = tcp_server_socket.accept()
print("一个新的客户端已经到来。。"% str(client_addr))
while True:
recv_data = new_client_socket.recv(1024)
print("客户端传送过来的请求是:%s" % recv_data.decode("utf-8"))
if recv_data:
new_client_socket.send("hahahaha",encode("utf-8"))
else:
break
new_client_socket.close()
print("已经为这个客户端服务完毕")
tcp_server_socket.close()
if __name__ == "__main__":
main()