首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python本机网络通信程序,Client端和Server端不能通信

2012-12-31 
求助:Python本机网络通信程序,Client端和Server端不能通信?Server端与Client端代码如下,当Client端用本地

求助:Python本机网络通信程序,Client端和Server端不能通信?
Server端与Client端代码如下,当Client端用本地回路地址时127.0.0.1,虽然Server端与Client端都能运行,但不能通信。
我将host改为本机具体的IP地址时,就可以。
麻烦各位大侠,看看为什么?
小弟不甚感激!!!!

Server端代码:------
import socket 

print 'Server'

host = ''
port = 50000 
backlog = 5 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host,port)) 
s.listen(backlog) 
while 1: 
    client, address = s.accept() 
    data = client.recv(size) 
    if data: 
        client.send(data) 
        print 'Server received:', data
    client.close()

Client端代码:------
import socket 

print 'Client'
#host = '192.168.0.101' 
host = '127.0.0.1' 
port = 50000 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect((host,port)) 
s.send('Hello, world') 
data = s.recv(size) 
s.close() 
print 'Received:', data

a = raw_input('Enter to continue...')

[解决办法]
表示server里host = ''是绑定192.168.0.101,貌似断开或禁用网路连接才会是127.0.0.1...
[解决办法]
这种事是不可能的
[解决办法]
使用环回地址是没有问题的。。。
[解决办法]
刚刚试下了都可以通信的。
[解决办法]
如果你的server/client是异地恋的话,比如一个在win7,一个在vmware
你要确保你的vmware中系统和win7网络是否能通,确认网卡连接(vmware中选项)选择bridge adapter,而不是nat,且设置为同一网段。

另外要学会通过辅助工具进行调试,比如说
你在vmware中的linux运行了python server端,
然后你就需要在linux中telnet 127.0.0.1 50000进行测试,看看是不是能够连接
然后在回到win7下telnet 192.168.11.XX 50000进行测试
如果这个都正常说明网络没问题,否则就是连接问题
最后再来看python client在win7上是否连通

最后实在不行,那么csdn,stackoverflow

热点排行