2013-12-20 97 views
1

只是這個問題的序言:我不知道我在做什麼,所以請原諒任何愚蠢。Python:通過局域網連接?

我正在做一個基於套接字的聊天室,我想在本地網絡上使用(我爸爸的電腦和我的連接通過相同的wifi)。

這裏是服務器代碼:

import socket 
import sys 

# Create a TCP/IP socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
server_address = ('localhost', 10000) 
print >>sys.stderr, 'starting up on %s port %s' % server_address 
sock.bind(server_address) 
sock.listen(1) 
while True: 
    # Find connections 
    connection, client_address = sock.accept() 
    try: 
     data = connection.recv(999) 
     print data 

    except: 
     connection.close() 

下面是客戶端:

import socket 
import sys 

# Create a TCP/IP socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
server_address = ('localhost', 10000) 
print >>sys.stderr, 'connecting to %s port %s' % server_address 

while True: 
    try: 
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     sock.connect(server_address) 
     message=raw_input('Message: ') 
     if message=='quit': 
      break 
     sock.sendall(message) 
    except: 
     break 
sock.close() 

當我運行在一臺計算機上的客戶端,並在另一..連接」不是個服務器做成了。我相信這是因爲server_address = ('localhost', 10000),但我不確定..有什麼建議嗎?

+0

使用本地IP的 –

+0

如何發現? 'ipconfig'?每一個放在哪裏? –

+0

ipconfig或ifconfig在Linux中,你已經把你的ip放在服務器代碼中¨server_address=('myip',10000)¨你必須把一個客戶端放在你父親的計算機上,這個¨server_address=('myip',10000)¨ –

回答

5

你必須使用本地IP的,例如,如果你要成爲你必須使用你自己的IP的服務器代碼的服務器:

找到IP:

ipconfig - Windows CMD 
ifconfig - Linux Shell, Mac Terminal 

後你知道你的IP你有你自己的IP取代localhost

Server代碼:

server_address = ('myip', 10000) 

所以在你父親的電腦,你必須連接到服務器:

客戶端代碼:

server_address = ('myip', 10000)