关于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()
展开
 我来答
lpe234
2015-07-11 · TA获得超过2778个赞
知道小有建树答主
回答量:1250
采纳率:50%
帮助的人:568万
展开全部
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了,或者域名。或者使用类似“花生壳”等软件,进行主机映射也可以
追问
比如我的外网IP是221.216.36.XXX,那么我在外地的朋友绑定这个host就可以和我通讯么?
追答
只要你外地的朋友 可以 ping 221.216.36.XXX 通 你的主机,就可以进行通讯。
就像web是 80端口一样。你在 221.216.36.XXX 架设个网站,别人使用这个IP就可以访问。

其他socket通讯,指定相应地端口就可以。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式