python

socket编程:

Server端:

import socket

#创建服务端的scoket对象socket
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = '127.0.0.1'
port = 1111
#绑定地址
socket.bind((host,port))
#设置监听
socket.listen(5)
#等待客户端连接
#注:accept()函数会返回一个元组
#元素1为客户端的socket对象,元素2为客户端的地址(IP地址,端口号)
clientscoket,addr = socket.accept()

#while循环是为了让对话一直进行,知道客户端输入q
while True:
    #接收客户端的请求
    recvmsg = clientscoket.recv(1024)
    #把接收到的数据进行解码
    strData = recvmsg.decode('utf-8')
    #判断客户端是否发送q,是就退出此次对话
    if strData == 'q':
        break
    print('收到:',strData)
    msg = input('回复:')
    clientscoket.send(msg.encode('utf-8'))
socket.close()

客户端:

import socket
#创建一个客户端的socket对象;使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#设置服务端的ip地址
host = '127.0.0.1'
#设置端口
port = 1111
#连接服务端
client.connect((host,port))

#while循环是为了保证能持续进行对话
while True:
    #输入发送的信息
    sendmsg = input('请输入:')
    #如果客户端的输入是q,则停止对话并退出程序
    if sendmsg =='q':
        break
    #发送数据,以二进制的形式发送数据,所以要进行编码
    client.send(sendmsg.encode('utf-8'))
    msg = client.recv(1024)
    #接收服务端返回的数据,需要解码
    print(msg.decode('utf-8'))

#关闭客户端
client.close()
原文地址:https://www.cnblogs.com/muzii/p/14207795.html