爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11616|回复: 0

[混合编程] [已收纳]python之服务器与客户端通信案例

[复制链接]

新浪微博达人勋

发表于 2019-10-9 16:57:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2021-3-9 09:55 编辑

打开2个cmd窗口,分别执行服务器和客户端脚本,二者就可以聊天了,
不过是交替进行的聊天,因为代码中不收到数据,就不给发送数据。
发送数据要encode,接收数据要decode
脚本结尾处的释放socket句柄似乎没用,因为循环不会结束


聊天.jpg

服务器端脚本:
import socket
#主机IP:
host=socket.gethostname()
#设置端口号:
port=12345
#新建socket对象:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定端口:
s.bind((host,port))
#设置最多连接数:
s.listen(3)
#被动接收客户端连接:
sock,addr=s.accept()
print('连接已建立')
#接收客户端数据:
info=sock.recv(1024).decode()
while True:
    print('收到:'+info)
    send_data=input('发送的内容:')
    #发送数据:
    sock.send(send_data.encode())
    info=sock.recv(1024).decode()
#关闭客户端套接字:
sock.close()
#关闭服务器套接字:
s.close()





客户端脚本:
import socket
#新建socket对象:
s=socket.socket()
#主机IP:
host=socket.gethostname()
#端口号:
port=12345
#主动初始化TCP服务器连接:
s.connect((host,port))
print('已连接')
while True:
    #输入内容:
    send_data=input('输入:')
    #发送:
    s.send(send_data.encode())
    #接收服务器数据:
    info=s.recv(1024).decode()
    print('接收内容:'+info)
s.close()

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表