鱼C论坛

 找回密码
 立即注册
查看: 757|回复: 8

[已解决]请求版主帮忙删帖

[复制链接]
发表于 2020-5-15 12:16:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Robot_Steve 于 2022-5-2 10:00 编辑

我把代码放到上面,看看能不能实现局域网通讯:
两台不同的电脑实现通讯

A电脑(服务端):
  1. from socket import *

  2. HOST = ''
  3. PORT = 21567
  4. BUFSIZ = 1024
  5. ADDR = (HOST,PORT)

  6. tcpSerSock = socket(AF_INET,SOCK_STREAM)
  7. tcpSerSock.bind(ADDR)
  8. tcpSerSock.listen(5)

  9. while True:
  10.     print('waiting for connection...')
  11.     tcpCliSock, addr = tcpSerSock.accept()
  12.     print('...connnecting from:', addr)

  13.     while True:
  14.         data = tcpCliSock.recv(BUFSIZ)
  15.         if not data:
  16.             break
  17.         #tcpCliSock.send('[%s] %s' %(bytes(ctime(),'utf-8'),data))
  18.         tcpCliSock.send(('%s' % (data)).encode())
  19.         print(data.decode('utf-8'))

  20.         data1 = input('>')
  21.         # data = str(data)
  22.         if not data1:
  23.          break
  24.         tcpCliSock.send(data1.encode())
  25.         data1 = tcpCliSock.recv(BUFSIZ)
  26.         if not data1:
  27.          break
  28.         print(data1.decode('utf-8'))
  29.     tcpCliSock.close()
复制代码


B电脑(客户端):
  1. from socket import *

  2. HOST = '127.0.0.1' # or 'localhost'
  3. PORT = 21567
  4. BUFSIZ =1024
  5. ADDR = (HOST,PORT)

  6. tcpCliSock = socket(AF_INET,SOCK_STREAM)
  7. tcpCliSock.connect(ADDR)
  8. while True:
  9.      data1 = input('>')
  10.      #data = str(data)
  11.      if not data1:
  12.          break
  13.      tcpCliSock.send(data1.encode())
  14.      data1 = tcpCliSock.recv(BUFSIZ)
  15.      if not data1:
  16.          break
  17.      print(data1.decode('utf-8'))

  18.      data = tcpCliSock.recv(BUFSIZ)
  19.      if not data:
  20.          break
  21.      # tcpCliSock.send('[%s] %s' %(bytes(ctime(),'utf-8'),data))
  22.      tcpCliSock.send(('%s' % (data)).encode())
  23.      print(data.decode('utf-8'))
  24. tcpCliSock.close()
复制代码


帮我看看能不能实现两个电脑之间的局域网通讯。
两个电脑连的是同一个网络。

感谢解答
最佳答案
2020-5-15 13:08:27
这个代码要用到socket,pip install socket

a:

import socket



Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)        #新建socket

Sockin.bind(('IP地址',23000))   #socket绑定该主机的ip和端口

while True:             #循环中执行收发功能

    text = raw_input('> ')

    Sockin.sendto(text,(('IP地址',23000)))     #将 'text’ 发送给对方

    if text == 'q':

        Scokin.close()  #退出时关闭socket

        break

      

    msg,(addr,port) = Sockin.recvfrom(100)    # 接受数据

    if msg == 'q':

        Sockin.close()

        break

    print msg


b:
import socket

Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

Sockin.bind(('192.168.10.8',23000))

while True:

    msg,(addr,port) = Sockin.recvfrom(100)

    if msg == 'q':

        Sockin.close()

        break

    else:

        print msg

    text = raw_input('> ')

    Sockin.sendto(text,(('192.168.10.5',23000)))

    if text =='q':

        Sockin.close()

        break
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 12:55:27 | 显示全部楼层
你得先建一个服务器,有服务器地址,连上,才能通信
(满意请设最佳)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 13:00:30 | 显示全部楼层
焦健鬼 发表于 2020-5-15 12:55
你得先建一个服务器,有服务器地址,连上,才能通信
(满意请设最佳)

请问具体怎么做(之前从没做过局域网,有点儿懵)?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 13:02:40 | 显示全部楼层
Robot_Steve 发表于 2020-5-15 13:00
请问具体怎么做(之前从没做过局域网,有点儿懵)?

局域网也行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 13:03:21 | 显示全部楼层
Robot_Steve 发表于 2020-5-15 13:00
请问具体怎么做(之前从没做过局域网,有点儿懵)?

IP地址
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 13:05:28 | 显示全部楼层

懂了。代码没问题吧(我在网上找的代码)?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 13:08:27 | 显示全部楼层    本楼为最佳答案   
这个代码要用到socket,pip install socket

a:

import socket



Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)        #新建socket

Sockin.bind(('IP地址',23000))   #socket绑定该主机的ip和端口

while True:             #循环中执行收发功能

    text = raw_input('> ')

    Sockin.sendto(text,(('IP地址',23000)))     #将 'text’ 发送给对方

    if text == 'q':

        Scokin.close()  #退出时关闭socket

        break

      

    msg,(addr,port) = Sockin.recvfrom(100)    # 接受数据

    if msg == 'q':

        Sockin.close()

        break

    print msg


b:
import socket

Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

Sockin.bind(('192.168.10.8',23000))

while True:

    msg,(addr,port) = Sockin.recvfrom(100)

    if msg == 'q':

        Sockin.close()

        break

    else:

        print msg

    text = raw_input('> ')

    Sockin.sendto(text,(('192.168.10.5',23000)))

    if text =='q':

        Sockin.close()

        break
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 13:09:01 | 显示全部楼层
Robot_Steve 发表于 2020-5-15 13:05
懂了。代码没问题吧(我在网上找的代码)?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 13:14:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 07:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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