什么是 Python 网络编程?

liftword3周前 (04-07)技术文章12


在代码中使用套接字连接到远程机器或环回地址 (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'。

相关文章

小白起飞记之Python{1.2} 什么是Python

最流行的语言Python成千上万的同学正是从 Python 开启他们的编程之旅。Python 不一定非得是你学习的第一门编程语言,但我觉得对大多数开发者而言,它是入门首选。Python 语法简洁,能让...

python是一种什么类型的编程语言

Python(英国发音:/'paθn/ 美国发音:/'paθɑn/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程...