Robot_Steve 发表于 2020-5-15 12:16:56

请求版主帮忙删帖

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

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

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

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST,PORT)

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

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

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

      data1 = input('>')
      # data = str(data)
      if not data1:
         break
      tcpCliSock.send(data1.encode())
      data1 = tcpCliSock.recv(BUFSIZ)
      if not data1:
         break
      print(data1.decode('utf-8'))
    tcpCliSock.close()

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

HOST = '127.0.0.1' # or 'localhost'
PORT = 21567
BUFSIZ =1024
ADDR = (HOST,PORT)

tcpCliSock = socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
   data1 = input('>')
   #data = str(data)
   if not data1:
         break
   tcpCliSock.send(data1.encode())
   data1 = tcpCliSock.recv(BUFSIZ)
   if not data1:
         break
   print(data1.decode('utf-8'))

   data = tcpCliSock.recv(BUFSIZ)
   if not data:
         break
   # tcpCliSock.send('[%s] %s' %(bytes(ctime(),'utf-8'),data))
   tcpCliSock.send(('%s' % (data)).encode())
   print(data.decode('utf-8'))
tcpCliSock.close()

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

感谢解答

焦健鬼 发表于 2020-5-15 12:55:27

你得先建一个服务器,有服务器地址,连上,才能通信
(满意请设最佳)

Robot_Steve 发表于 2020-5-15 13:00:30

焦健鬼 发表于 2020-5-15 12:55
你得先建一个服务器,有服务器地址,连上,才能通信
(满意请设最佳)

请问具体怎么做(之前从没做过局域网,有点儿懵)?

焦健鬼 发表于 2020-5-15 13:02:40

Robot_Steve 发表于 2020-5-15 13:00
请问具体怎么做(之前从没做过局域网,有点儿懵)?

局域网也行

焦健鬼 发表于 2020-5-15 13:03:21

Robot_Steve 发表于 2020-5-15 13:00
请问具体怎么做(之前从没做过局域网,有点儿懵)?

IP地址

Robot_Steve 发表于 2020-5-15 13:05:28

焦健鬼 发表于 2020-5-15 13:03
IP地址

懂了。代码没问题吧(我在网上找的代码)?

焦健鬼 发表于 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

焦健鬼 发表于 2020-5-15 13:09:01

Robot_Steve 发表于 2020-5-15 13:05
懂了。代码没问题吧(我在网上找的代码)?

Robot_Steve 发表于 2020-5-15 13:14:11

焦健鬼 发表于 2020-5-15 13:09


感谢!
页: [1]
查看完整版本: 请求版主帮忙删帖