socket套接字

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建服务器套接字
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #重启服务端时遇上Address already in use 时加上,在bind前加
s.bind(('127.0.0.1',8083)) #把地址绑定到套接字
s.listen(5) #监听链接
 
print('starting...')
while True: # 链接循环
    conn,client_addr=s.accept() #接受客户端链接
    print(client_addr)
    while True: #通信循环
        try:
            data=conn.recv(1024)
            if not data:break #适用于linux操作系统 正在链接的客户端突然断开,recv便不再阻塞,死循环发生
            print('客户端的数据',data)
            conn.send(data.upper())
        except ConnectionResetError: #适用于windows操作系统
            break
    conn.close() #关闭客户端套接字
s.close() #关闭服务器套接字(可选)

 

 

 

import socket
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建客户套接字
c.connect(('127.0.0.1',8083)) # 尝试连接服务器
while True:  # 通讯循环
    msg=input('>>: ').strip() #msg=''
    if not msg:continue
    c.send(msg.encode('utf-8')) #c.send(b'')
    data=c.recv(1024)
    print(data.decode('utf-8'))
c.close() # 关闭客户套接字

posted @ 2020-06-05 11:28  蓝佬  阅读(161)  评论(0)    收藏  举报