目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。
Python实现的过程个人理解:
- 1.服务端开始监听。
- 2.客户端发起连接请求。
- 3.服务端收到连接请求信息。
- 3.客户端发送数据。
- 4.服务端收到客户端的数据,并返回给客户端自定义的数据。
- 5.客户端收到被返回的数据。
- 重复3-5…………
- 6.客户端或者服务端关闭这次通信。
- socket百度百科:https://baike.baidu.com/item/socket/281150。socket是python的默认模块。
socket_1serve.py 如下:
# -*- coding: utf-8 -*- """ Created on Wed Jul 18 16:42:50 2018 @author: lihc """ #============================================================================== # 1. TCP server端代码 # #!/usr/bin/env python # # # # -*- coding:utf-8 -*- # # #============================================================================== from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZE=1024 ADDR=(HOST, PORT) tcpSrvSock=socket(AF_INET, SOCK_STREAM) tcpSrvSock.bind(ADDR) tcpSrvSock.listen(5) while True: print ('waiting for connection ...',ctime()) tcpCliSock,addr = tcpSrvSock.accept() print ('... connected from:', addr) while True: data=tcpCliSock.recv(BUFSIZE) print("receive from 2:",data) if not data: break tcpCliSock.send(str.encode('[%s] %s'%(ctime(), data))) print ([ctime()],':',data) tcpCliSock.close() tcpSrvSock.close()
socket_2client.py如下:
# -*- coding: utf-8 -*- """ Created on Wed Jul 18 16:46:33 2018 @author: lihc """ #============================================================================== # 2. TCP client端代码 # #!/usr/bin/env python # # # # -*- coding:utf-8 -*- # # #============================================================================== from socket import * HOST='localhost' PORT=21567 BUFSIZE=1024 ADDR=(HOST, PORT) tcpCliSock=socket(AF_INET, SOCK_STREAM) tcpCliSock.connect(ADDR) while True: data = input('>') print(type(data)) data = str.encode(data) print(data) if not data: break tcpCliSock.send(data) data=tcpCliSock.recv(BUFSIZE) if not data: break print (data) tcpCliSock.close()
python之socket编程
http://www.360doc.com/content/17/1005/06/36536556_692309867.shtml
Socket编程】Python实现简易Web服务器
Python之路【第六篇】:socket
让我们一起来构建一个 Web 服务器
telnet配置和telnet用法
服务器端的基本流程:
1.初始化socket()
2.使用bind()绑定ip和端口号
3 使用listen()监听消息
4.获取客户端的套接字地址accept()
5.使用recv()接收数据,send()发送数据与客户端进行交互