关于Python中socket问题。
一般讲socket的例子都是在同一台电脑上,建立一个服务器,然后建立一个客户端,HOST=‘localhost’,这样就能实现两个shell之间的通讯了,现在想问一下,如...
一般讲socket的例子都是在同一台电脑上,建立一个服务器,然后建立一个客户端,HOST=‘localhost’,这样就能实现两个shell之间的通讯了,现在想问一下,如果要在两台不同网络(不同路由器)下进行通讯,客户端HOST应该是多少啊?主机ip么?
客户端代码
from socket import *
HOST='localhost'#如果要两台电脑远程通讯,这里应该绑定什么?
PORT=21569
BUFSIZ=1024
ADDR=(HOST,PORT)
tcpCliSock=socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while 1:
data=raw_input('>>>>')
if not data:
break
tcpCliSock.send(data)
data=tcpCliSock.recv(BUFSIZ)
if not data:
break
print data
tcpCliSock.close() 展开
客户端代码
from socket import *
HOST='localhost'#如果要两台电脑远程通讯,这里应该绑定什么?
PORT=21569
BUFSIZ=1024
ADDR=(HOST,PORT)
tcpCliSock=socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while 1:
data=raw_input('>>>>')
if not data:
break
tcpCliSock.send(data)
data=tcpCliSock.recv(BUFSIZ)
if not data:
break
print data
tcpCliSock.close() 展开
1个回答
展开全部
HOST='localhost'#如果要两台电脑远程通讯,这里应该绑定什么?
所谓host,就是主机地址。本地使用 'localhost' 会被映射为 '127.0.0.1'的,也就是本机。
不同主机相互通信呢?直接使用 局域网地址即可。比如 (本机)192.168.1.2 (其他电脑)192.168.1.3 然后本机做主机:HOST='192.168.1.2'
换句话说:客户端的机器 必须能够连接 主机。 在(其他电脑) "ping 192.168.1.2" 必须能ping通。
那么 不在同一个局域网的怎么办?那就必须使用 外网IP了,或者域名。或者使用类似“花生壳”等软件,进行主机映射也可以
所谓host,就是主机地址。本地使用 'localhost' 会被映射为 '127.0.0.1'的,也就是本机。
不同主机相互通信呢?直接使用 局域网地址即可。比如 (本机)192.168.1.2 (其他电脑)192.168.1.3 然后本机做主机:HOST='192.168.1.2'
换句话说:客户端的机器 必须能够连接 主机。 在(其他电脑) "ping 192.168.1.2" 必须能ping通。
那么 不在同一个局域网的怎么办?那就必须使用 外网IP了,或者域名。或者使用类似“花生壳”等软件,进行主机映射也可以
追问
比如我的外网IP是221.216.36.XXX,那么我在外地的朋友绑定这个host就可以和我通讯么?
追答
只要你外地的朋友 可以 ping 221.216.36.XXX 通 你的主机,就可以进行通讯。
就像web是 80端口一样。你在 221.216.36.XXX 架设个网站,别人使用这个IP就可以访问。
其他socket通讯,指定相应地端口就可以。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询