import socket
import threading, time
server = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
server.bind(("127.0.0.1",9999))
server.listen(5)print('wait client to connect......')defdealTcp(sock, addr):print('a new socket connect is comming...%s:%s'% addr)
sock.send(b'welcome')whileTrue:
data = sock.recv(1024)
time.sleep(1)ifnot data or data.decode('utf-8')=='exit':break
sock.send(b'hello %s'% data.decode('utf-8').encode('utf-8'))
sock.close()print('connect from %s:%s is closed'% addr)whileTrue:
sock, addr = server.accept()
t = threading.Thread(target=dealTcp, args=(sock, addr))
t.start()
二、客户端
import socket
client = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
client.connect(('127.0.0.1',9999))print('msg from server:%s'% client.recv(1024).decode('utf-8'))for name in[b'allen', b'mike', b'helln',]:
client.send(name)print('msg from server:%s'% client.recv(1024).decode('utf-8'))
client.send(b'exit')
client.close()
三、发送get请求获取网页
UDP编程
一、服务端
import socket
s = socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM)
s.bind(('127.0.0.1',9999))whileTrue:
data, addr = s.recvfrom(1024)print('msg from %s:%s--'% addr + data.decode())
s.sendto(b"hello %s"% data, addr)
二、客户端
import socket, time
s = socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM)for name in[b'allen', b'mikre', b'haha',]:
s.sendto(name,('127.0.0.1',9999))
data, addr = s.recvfrom(1024)
time.sleep(3)print('msg from %s:%s--'% addr + data.decode())
s.close()