Python提供了两个级别访问的网络服务。:
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
Python中,我们用socket()函数来创建套接字,语法格式如下:
现在我们可以通过调用bind(hostname,port)函数来指定服务的port(端口)。
接着,我们调用socket对象的accept方法。该方法等待客户端的连接,并返回connection对象,表示已连接到客户端。
完整代码如下:
接下来我们写一个简单的客户端实例连接到以上创建的服务。端口号为12345。
socket.connect(hosname,port)方法打开一个TCP连接到主机为hostname端口为port的服务商。连接后我们就可以从服务端获取数据,记住,操作完成后需要关闭连接。
现在我们打开两个终端,第一个终端执行server.py文件:
$pythonserver.py第二个终端执行client.py文件:
$pythonclient.py欢迎访问菜鸟教程!这时我们再打开第一个终端,就会看到有以下信息输出:
连接地址:('192.168.0.118',62461)PythonInternet模块以下列出了Python网络编程的一些重要模块:
葫芦
Lyc***3678795@yahoo.com
关于简单实例Mac上运行不出来,有几个报错,做了下修改。
server.py
#!/usr/bin/python#-*-coding:UTF-8-*-importsocket#建立一个服务端server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind(('localhost',6999))#绑定要监听的端口server.listen(5)#开始监听表示可以使用五个链接排队whileTrue:#conn就是客户端链接过来而在服务端为期生成的一个链接实例conn,addr=server.accept()#等待链接,多个链接的时候就会出现问题,其实返回了两个值print(conn,addr)whileTrue:try:data=conn.recv(1024)#接收数据print('recive:',data.decode())#打印接收到的数据conn.send(data.upper())#然后再发送数据exceptConnectionResetErrorase:print('关闭了正在占线的链接!')breakconn.close()client.py
laoshi
lao***@ee.com
关于简单实例都修改。
服务端:
#!/usr/bin/python#-*-coding:UTF-8-*-importsysreload(sys)sys.setdefaultencoding('utf8')importsocket#建立一个服务端server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind(('localhost',9090))#绑定要监听的端口server.listen(5)#开始监听表示可以使用五个链接排队whileTrue:#conn就是客户端链接过来而在服务端为期生成的一个链接实例conn,addr=server.accept()#等待链接,多个链接的时候就会出现问题,其实返回了两个值print(conn,addr)whileTrue:data=conn.recv(1024)#接收数据print('recive:',data.decode())#打印接收到的数据conn.send(data.upper())#然后再发送数据conn.close()