鱼C论坛

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

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

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

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

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

x
本帖最后由 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 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 12:55:27 | 显示全部楼层
你得先建一个服务器,有服务器地址,连上,才能通信
(满意请设最佳)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

请问具体怎么做(之前从没做过局域网,有点儿懵)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

局域网也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

IP地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

懂了。代码没问题吧(我在网上找的代码)?
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 13:14:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 08:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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