成都趣题 第500002期 通讯
本帖最后由 学习编程中的Ben 于 2023-1-9 16:32 编辑成都趣题 第500002期 通讯
故事背景:
Oh,no!大佬 hveagle 和蒟蒻 学习编程中的Ben 被困在了岛上!整个岛的政府本来将所有人都送到了其他地方住,但这两位仁兄成功忘记了搬迁
的时间,睡过了头,一觉起来岛上已经一个人也没有了。他们手上各有一把钥匙,只要集齐这两把钥匙,打开来自远古的牛逼魔法阵,就能让他们离开!
但可惜他俩都是路痴,成功走散。这是一个极大的岛屿,虽然两人相隔不远,但如果忙乱寻找,他们俩就可能越走越远。最重要的是,他们的水和食
物的储备粮已经见底,一旦和对方走远,他们俩就可以——game over了!
幸好这个岛屿的人才刚搬走,岛上的局域网还存在。并且他们俩人都是有电脑的货,但他们在美国打工的家长为了防止孩子沉迷于与网友讲话不
编程,便只在电脑里安装了各种语言的编译器。并且这里的网络无法已经和外部连接,微信、QQ现在想下也下不了。不过还好,他们都及得对方电脑
的IP,便打算编写一个通讯程序来联系对方。但他俩都不会!所以聪明的你,快来帮助他们吧!
题目描述:
语言不限,请编写出能使两台电脑在同一个局域网中通讯(仅限文字)的程序,IP以你的电脑为准,分为服务器和客户端两部分。本题只要求实现一对一(一个服务器连接一个客户端)通讯就行了
提示:
使用Python的socket模块。
参考答案:
**** Hidden Message *****
奖励区:
名次 第一名 第二名 第三名
谁? 等待着变成王者登上宝座~
语言
几楼
奖励 展示+最佳答案 展示+1鱼币 展示
上一期:传送门
下一期:对不起,还没出,请回论坛首页等待!
评价:
顶顶顶~ {:10_256:} import socket
sk = socket.socket()
address = ('192.168.2.8',9002)
sk.connect(address)
while True:
inp = input('>>>')
if inp == 'q':
print('Bye-bye')
break
sk.send(bytes(inp,'utf8'))
data = sk.recv(1024)
print(str(data,'utf8'))
串口通讯比较熟悉,tcp/ip协议通讯还没写过,尝试一下? sfqxx 发表于 2023-1-9 19:31
客户端+服务端 {:10_256:} 最近学了一下{:10_256:}
客户端
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip_port = ('192.168.1.228', 8000)
client.connect(ip_port)
while True:
message = input('You can say:')
client.send(message.encode('utf-8'))
a = client.recv(1024)
print(a.decode('utf-8'))
if a.decode('utf-8') == 'bye':
break
服务端
import socket
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip_port = ('192.168.1.228', 8000)
sk.bind(ip_port)
sk.listen(2)
a, b = sk.accept()
print(a)
while True:
data = a.recv(1024)
print(data.decode('utf-8'))
message = input("you can say:")
a.send(message.encode('utf-8'))
if message == ('bye'):
break
页:
[1]