在代码中使用套接字连接到远程机器或环回地址 (127.0.01) 是网络编程

import socket
import sys
HOST = 'localhost'
PORT = 8888 #any port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'
#putting s.bind() in try because in case if the port is already being used it will through an exception
try:
s.bind((HOST, PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
#Start listening on socket
s.listen(10)
print 'Socket now listening
while 1:
#wait to accept a connection - blocking call
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
s.close()

在上面的代码中,socket.socket(socket.AF_INET, socket.SOCK_STREAM) 语句创建了一个套接字,socket.AF_INET agrument 指定套接字将使用 Internet 协议 4 的 version4,通常称为 IPV4,socket.SOCK_STREAM 用于 TCP。

下一步是将套接字绑定到客户端可以连接数据的端口号,s.bind((HOST, PORT)) 语句将套接字绑定到端口 8888 和主机 localhost 它可能会失败并出现异常,如果端口是已经绑定到某个其他进程,或者您没有足够的权限打开一个端口。

s.listen(10) 用于监听 8888 端口,这里连接队列为 10,一次只能有 10 个连接可以排队。

conn, addr = s.accept() 用于接受来自客户端的连接,它返回一个元组,该元组具有连接对象和一个地址,从该地址向服务器发起连接,使用连接对象可以发送或接收简单的 read() 和写入数据函数可以与连接类一起使用。

import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)clientsocket.connect(('localhost', 8888))

以上是众所周知的客户端代码

socket.socket(socket.AF_INET, socket.SOCK_STREAM) 语句创建一个套接字,clientsocket.connect(('localhost', 8888)) 语句将它连接到端口 8888 上的 'localhost'。