局域网的socket通讯与防火墙

  
局域网的socket通讯与防火墙
    昨天同事写了一个socket通讯程序。很简单,server端在7000端口监听,client端连接后,server向client发送一个字符串,client在收到该字符串后,再向server反馈一个消息。整个通讯过程结束。
    Server和client在同一台机器时,整个通讯过程能够很顺利的完成。问题是,server和client在不同的机器时,client连接server失败。返回的错误码为[WSAETIMEDOUT:10060],错误消息为[ Connection refused. No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.]
    后来向网络管理人员咨询之后发现,原来是windows xp的防火墙在作怪。因为防火墙认为对其他端口的访问会影响本机的安全,所以该访问就被拒绝了。[本地连接] -->  [属性] -->  [详细设定] --> [设定]之后弹出设定对话框,有[设定],[例外],[详细设定]三个属性页。可以在例外中,将需要访问的7000端口添加进来,一切都ok了。
以上设定只需要在server端设定就可以了。
        ファイアウォール
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 Python 的 socket 模块可以实现局域网内的通信。 下面是一个简单的示例代码: 服务端: ```python import socket HOST = '' PORT = 5000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() print('Connected by', addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data) conn.close() ``` 客户端: ```python import socket HOST = 'localhost' PORT = 5000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) s.sendall(b'Hello, world') data = s.recv(1024) print('Received', repr(data)) s.close() ``` 在以上代码中,服务端监听本地地址和端口,并且接收客户端的连接请求。客户端连接服务端后,发送数据并接收服务端返回的数据。可以根据自己的需求修改代码。 ### 回答2: Python中的socket编程可以用于在局域网中实现网络通信。使用socket库可以在python程序中创建客户端和服务器端,使它们可以通过socket连接进行通信。 首先,服务器端需要创建一个socket对象并将其绑定到IP地址和端口号上。之后,服务器端可以使用socket对象的listen()方法来监听客户端的连接请求。一旦有客户端请求连接,服务器端可以使用socket对象的accept()方法来接受连接,并创建一个新的socket对象,用于与客户端进行通信。服务器端可以使用这个新的socket对象的send()和recv()方法来发送和接收数据。 客户端需要创建一个socket对象并将其连接到服务器的IP地址和端口号上。之后,客户端可以使用socket对象的send()和recv()方法来发送和接收数据。 在实际应用中,可以使用Python的socket库配合其他网络协议(如TCP或UDP)来实现各种功能,例如创建一个简单的聊天程序、传输文件等。 总结起来,Python的socket编程可以让程序在局域网中实现网络通信,通过创建socket对象来创建客户端和服务器端,并使用socket对象的方法来进行数据传输。 ### 回答3: Python的Socket模块是用来实现网络通信的一种机制,可以用于在局域网内进行网络通信。使用Socket模块,我们可以创建一个服务器端和一个或多个客户端,它们之间可以进行双向数据交换。 在局域网中进行Socket通信时,服务器端首先通过指定一个IP地址和端口号来创建一个服务器Socket对象。然后,通过调用对象的bind()方法将服务器Socket对象与指定的IP地址和端口号绑定在一起。接着,服务器Socket对象通过调用listen()方法开始监听来自客户端的连接请求。 客户端通过创建一个客户端Socket对象,并指定连接的服务器的IP地址和端口号来连接到服务器端。客户端Socket对象通过调用connect()方法来与服务器Socket对象进行连接。 一旦服务器端和客户端建立连接,它们可以通过调用send()和recv()方法来进行数据的发送和接收。服务器可以通过调用accept()方法接受客户端的连接请求,并通过调用send()方法向客户端发送数据。客户端可以通过调用recv()方法接收服务器端发送过来的数据。 在局域网内进行Socket通信可以方便地实现多台计算机之间的数据交换,例如可以通过局域网socket在不同计算机之间进行文件传输、网络聊天等。使用Python的Socket模块,我们可以简单快速地实现局域网内的网络通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值