TCP

import socket #tcp协议 sk = socket.socket() # 买手机 创建一个socket对象 sk.bind(('127.0.0.1',8080)) # 给server端绑定一个ip和端口 sk.listen() # py3.4 while True: conn,addr = sk.accept() # 获取到一个客户端的连接, 已经完成了三次握手建立了一个连接 # 阻塞 while True: msg = conn.recv(1024).decode('utf-8') # 阻塞,直到收到一个客户端发来的消息 print(msg) if msg == 'bye':break info = input('>>>') if info == 'bye': conn.send(b'bye') break conn.send(info.encode('utf-8')) # 发消息 conn.close() # 关闭连接 sk.close() # 关闭socket对象,如果不关闭,还能继续接收 # server client1 建立了长连接 # client2

import socket sk = socket.socket() sk.connect(('127.0.0.1',8080)) while True: msg = input('>>>') if msg == 'bye': sk.send(b'bye') break sk.send(msg.encode('utf-8')) ret = sk.recv(1024).decode('utf-8') if ret == 'bye':break print(ret) sk.close()

import socket sk = socket.socket() sk.connect(('127.0.0.1',8080)) while True: msg = input('client2:>>>') if msg == 'bye': sk.send(b'bye') break sk.send(('client2 :'+msg).encode('utf-8')) ret = sk.recv(1024).decode('utf-8') if ret == 'bye':break print(ret) sk.close()
UDP

import socket sk = socket.socket(type=socket.SOCK_DGRAM) #DGRAM datagram sk.bind(('127.0.0.1',8080)) #只有服务端有的 msg,addr = sk.recvfrom(1024) print(msg.decode('utf-8')) sk.sendto(b'bye',addr) sk.close()

import socket sk = socket.socket(type=socket.SOCK_DGRAM) ip_port = ('127.0.0.1',8080) sk.sendto(b'hello',ip_port) ret,addr = sk.recvfrom(1024) print(ret.decode('utf-8')) sk.close()
UDP协议实现qq聊天

import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind(('127.0.0.1',8080)) while True: msg,addr = sk.recvfrom(1024) print(addr) print(msg.decode('utf-8')) info = input('>>>').encode('utf-8') sk.sendto(info,addr) sk.close()

import socket sk = socket.socket(type=socket.SOCK_DGRAM) ip_port = ('127.0.0.1',8080) while True: info = input('tiger :') info = ('