基于tcp协议

服务端:

import socket
sk = socket.socket()  # 实例化一个对象
sk.bind((\'127.0.0.1\',9000))  # 绑定一个地址 ip+端口号 括号里面必须时元组的形式
# 127.0.0.1 表示的本机地址,不过交换机的,只是为了排除一些网络问题,端口号一般写9000之后的数
sk.listen()  # 表示开始监听
conn,addr = sk.accpet()  # 接受一个链接请求
# conn 是一个对象,addr是请求对象的地址
# conn.send(b\'hello\')  # 给请求对象发送hello
conn.send(\'hello\'.encode(\'utf-8\'))  # 推荐使用
# conn.send(\'你好\'.encode(\'utf-8\'))  # 发送中文时只能用这个
msg = conn.recv(1024).decode(\'utf-8\')  # 接受客户端发来的消息
print(msg)
conn.close()  # 与对方的信息传递结束
sk.close()  # 关闭

客户端:

import socket
sk = socket.socket()
sk.connect((\'127.0.0.1\',9000))
msg = sk.recv(1024).decode(\'utf-8\')  # 最多接受1024字节
print(msg)
sk.send(\'你好\'.encode(\'utf-8\'))
sk.close()

 基于udp协议

服务端:

# import socket
# sk = socket.socket(type=socket.SOCK_DGRAM)
from socket import socket,SOCK_DGRAM
sk = socket(type=SOCK_DGRAM)
sk = bind((\'127.0.0.1\',9000))
while True:
    msg,cli_addr = sk.recvfrom(1024)
    # print(msg,cli_addr)  # cli_addr 为客户端的地址
    print(msg.encode(\'utf-8\'))
    if msg.encode(\'utf-8\').upper() == \'Q\':
        continue
    content = input(\'>>>\')
    sk.sendto(content.encode(\'utf-8\'),cli_addr)

客户端:

from socket import socket,SOCK_DGRAM
sk = socket(type=SOCK_DGRAM)
server_addr = (\'127.0.0.1\',9000)  # 服务端地址
while True:
    content = input(\'>>>\')
    if content.upper() == \'Q\':
        break
    sk.sendto(content.encode(\'utf-8\'),server_addr)
    msg = sk.recv(1024)
    print(msg.decode(\'utf-8\'))

 

版权声明:本文为womenzt原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/womenzt/p/12423271.html