TCP:
服务器:
# _*_ coding: utf-8 _*_ import socket srvsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) srvsock.bind(('', 23000)) srvsock.listen(5) while 1: # 循环处理各个客户机连接 # 调用accept方法并阻塞(即并不会返回),直到有新客户机连接到它为止,此时会返回新的客户机socket,以及远程客户机的地址信息。 clisock, (remhost, remport) = srvsock.accept() str = clisock.recv(100) # 从socket接收数据,最多buflen个字符 clisock.send(str) clisock.close()
客户端:
# _*_ coding: utf-8 _*_ import socket clisock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clisock.connect(('', 23000)) clisock.send("Hello World\n") print clisock.recv(100) clisock.close()
UDP(无连接的):
服务器:
# 数据报(无连接的) import socket dgramSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) dgramSock.bind(('', 23000)) while 1: # 循环处理各个客户机连接 msg, (addr, port) = dgramSock.recvfrom(100) dgramSock.sendto(msg, (addr, port)) #将消息发到指定的地址
客户端:
# 数据报客户机 import socket dgramSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) dgramSock.sendto("Hello World\n", ('', 23000)) print dgramSock.recv(100) dgramSock.close()