学习编程中的Ben 发表于 2023-1-9 15:15:47

成都趣题 第500002期 通讯

本帖最后由 学习编程中的Ben 于 2023-1-9 16:32 编辑

成都趣题 第500002期 通讯


故事背景:
        Oh,no!大佬 hveagle 和蒟蒻 学习编程中的Ben 被困在了岛上!整个岛的政府本来将所有人都送到了其他地方住,但这两位仁兄成功忘记了搬迁
的时间,睡过了头,一觉起来岛上已经一个人也没有了。他们手上各有一把钥匙,只要集齐这两把钥匙,打开来自远古的牛逼魔法阵,就能让他们离开!
但可惜他俩都是路痴,成功走散。这是一个极大的岛屿,虽然两人相隔不远,但如果忙乱寻找,他们俩就可能越走越远。最重要的是,他们的水和食
物的储备粮已经见底,一旦和对方走远,他们俩就可以——game over了!
        幸好这个岛屿的人才刚搬走,岛上的局域网还存在。并且他们俩人都是有电脑的货,但他们在美国打工的家长为了防止孩子沉迷于与网友讲话不
编程,便只在电脑里安装了各种语言的编译器。并且这里的网络无法已经和外部连接,微信、QQ现在想下也下不了。不过还好,他们都及得对方电脑
的IP,便打算编写一个通讯程序来联系对方。但他俩都不会!所以聪明的你,快来帮助他们吧!


题目描述:
        语言不限,请编写出能使两台电脑在同一个局域网中通讯(仅限文字)的程序,IP以你的电脑为准,分为服务器和客户端两部分。本题只要求实现一对一(一个服务器连接一个客户端)通讯就行了

提示:
        使用Python的socket模块。


参考答案:
**** Hidden Message *****


奖励区:


名次 第一名 第二名 第三名
谁? 等待着变成王者登上宝座~
语言
几楼
奖励 展示+最佳答案 展示+1鱼币 展示



上一期:传送门
下一期:对不起,还没出,请回论坛首页等待!


评价:

学习编程中的Ben 发表于 2023-1-9 16:32:44

顶顶顶~

hveagle 发表于 2023-1-9 18:47:54

{:10_256:}

sfqxx 发表于 2023-1-9 19:31:11

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'))

chinajz 发表于 2023-1-9 19:44:32

串口通讯比较熟悉,tcp/ip协议通讯还没写过,尝试一下?

学习编程中的Ben 发表于 2023-1-9 20:23:34

sfqxx 发表于 2023-1-9 19:31


客户端+服务端

Mike_python小 发表于 2023-1-11 09:29:09

{:10_256:}

元豪 发表于 2023-1-16 12:06:56

最近学了一下{: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]
查看完整版本: 成都趣题 第500002期 通讯