Python:通过LAN连接?

Sam*_*ubb 2 python sockets networking

只是这个问题的序言:我不知道我在做什么,所以请原谅任何愚蠢.

我正在制作一个基于插座的聊天室,我想在本地网络上使用(我父亲的电脑和我的同一个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()
Run Code Online (Sandbox Code Playgroud)

这是客户:

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()
Run Code Online (Sandbox Code Playgroud)

当我在一台计算机上运行客户端,而另一台计算机上运行服务器时...没有建立连接.我相信这是因为server_address = ('localhost', 10000)但我不确定..有什么建议吗?

Vic*_*res 6

例如,如果要成为服务器,则必须使用本地ip,服务器代码中必须使用自己的ip:

找到ip:

ipconfig - Windows CMD
ifconfig - Linux Shell, Mac Terminal
Run Code Online (Sandbox Code Playgroud)

知道你的ip之后你必须localhost用你自己的ip 替换:

服务器代码:

server_address = ('myip', 10000)
Run Code Online (Sandbox Code Playgroud)

所以在你父亲的电脑里你必须连接到你的服务器:

客户代码:

server_address = ('myip', 10000)
Run Code Online (Sandbox Code Playgroud)