鱼C论坛

 找回密码
 立即注册
查看: 3986|回复: 7

成都趣题 第500002期 通讯

[复制链接]
发表于 2023-1-9 15:15:47 | 显示全部楼层 |阅读模式
本帖最后由 学习编程中的Ben 于 2023-1-9 16:32 编辑

成都趣题 第500002期 通讯



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


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

提示:
        使用Python的socket模块。


参考答案:
游客,如果您要查看本帖隐藏内容请回复



奖励区:

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



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


评价:

单选投票, 共有 1 人参与投票

投票已经结束

0.00% (0)
0.00% (0)
0.00% (0)
0.00% (0)
100.00% (1)
您所在的用户组没有投票权限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-9 16:32:44 | 显示全部楼层
顶顶顶~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-9 18:47:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-9 19:44:32 | 显示全部楼层
串口通讯比较熟悉,tcp/ip协议通讯还没写过,尝试一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-9 20:23:34 | 显示全部楼层

客户端+服务端
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-11 09:29:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-16 12:06:56 | 显示全部楼层
最近学了一下

客户端
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 05:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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