鱼C论坛

 找回密码
 立即注册
查看: 4604|回复: 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)
您所在的用户组没有投票权限
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-9 16:32:44 | 显示全部楼层
顶顶顶~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-9 18:47:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-9 19:31:11 | 显示全部楼层
  1. import socket
  2. sk = socket.socket()
  3. address = ('192.168.2.8',9002)
  4. sk.connect(address)

  5. while True:
  6.     inp = input('>>>')
  7.     if inp == 'q':
  8.         print('Bye-bye')
  9.         break
  10.     sk.send(bytes(inp,'utf8'))
  11.     data = sk.recv(1024)
  12.     print(str(data,'utf8'))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-9 19:44:32 | 显示全部楼层
串口通讯比较熟悉,tcp/ip协议通讯还没写过,尝试一下?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

客户端+服务端
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-11 09:29:09 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

客户端
  1. import socket

  2. client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  3. ip_port = ('192.168.1.228', 8000)

  4. client.connect(ip_port)
  5. while True:
  6.     message = input('You can say:')
  7.    
  8.     client.send(message.encode('utf-8'))
  9.    
  10.     a = client.recv(1024)
  11.     print(a.decode('utf-8'))
  12.    
  13.     if a.decode('utf-8') == 'bye':
  14.         break
复制代码


服务端
  1. import socket

  2. sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  3. ip_port = ('192.168.1.228', 8000)

  4. sk.bind(ip_port)

  5. sk.listen(2)

  6. a, b = sk.accept()
  7. print(a)
  8. while True:
  9.     data = a.recv(1024)
  10.     print(data.decode('utf-8'))
  11.     message = input("you can say:")
  12.     a.send(message.encode('utf-8'))
  13.     if message == ('bye'):
  14.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 13:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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