socket编程

来源:互联网 发布:淘宝宝贝如何分享 编辑:程序博客网 时间:2024/05/29 18:55
#sokect编程#1 TCP变成#1.1 、客户端import socket# 创建一个 socket:s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:s.connect(('www.sina.com.cn', 80))s.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection:close\r\n\r\n')buffer = []while True:    d = s.recv(1024)    if d:        buffer.append(d)    else:        breakdata = b''.join(buffer)print(data.decode())s.close()#1.2 服务器import socketimport threadingimport timedef tcplink(sock, addr):    print('a new connect from %s:%s' % addr)    sock.send(b'welcome!')    while True:        data = sock.recv(1024)        time.sleep(1)        if not data or data.decode('utf-8') == 'exit':            break        sock.send(('Hello  %s!' % data).encode('utf-8'))    sock.close()    print('connet from %s:%s closed' %addr)# 创建一个 socket:s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('127.0.0.1',9999))s.listen(5)print('wait............')while True:    sock,addr = s.accept()    t = threading.Thread(target=tcplink,args=(sock,addr))    t.start()#创建一个客户端连接服务器import sockets = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('127.0.0.1',9999))print(s.recv(1024).decode('utf-8'))for data in [b'Mic',b'Tra',b'Sar']:    s.send(data)    print(s.recv(1024).decode('utf-8'))s.send(b'exit')s.close()#2、UDP链接#2.1 服务器import socketimport threadingimport times = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定端口:s.bind(('127.0.0.1', 9999))print('Bind UDP on 9999...')while True: # 接收数据: data, addr = s.recvfrom(1024) print('Received from %s:%s.' % addr) s.sendto(b'Hello, %s!' % data, addr)#2.2客户端import sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.sendto(data, ('127.0.0.1', 9999)) # 接收数据: print(s.recv(1024).decode('utf-8'))s.close()
原创粉丝点击