博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3实现socket通信
阅读量:6700 次
发布时间:2019-06-25

本文共 2115 字,大约阅读时间需要 7 分钟。

 

目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。

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 ctimeHOST = ''PORT = 21567BUFSIZE=1024ADDR=(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=21567BUFSIZE=1024ADDR=(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()

 

 

 

 

http://www.360doc.com/content/17/1005/06/36536556_692309867.shtml

 

 

服务器端的基本流程:

1.初始化socket()

2.使用bind()绑定ip和端口号

3 使用listen()监听消息

4.获取客户端的套接字地址accept()

5.使用recv()接收数据,send()发送数据与客户端进行交互

转载于:https://www.cnblogs.com/andylhc/p/9340147.html

你可能感兴趣的文章
编程之美-第3章 结构之法
查看>>
WinForm部署问题
查看>>
[解题报告]591 - Box of Bricks
查看>>
XP系统中没有Internet信息服务windows组件解决办法
查看>>
SPOJ Problem 6219:Edit distance
查看>>
实验四
查看>>
OCM_第十九天课程:Section9 —》Data Guard _ DATA GUARD 原理/DATA GUARD 应用/DATA GUARD 搭建...
查看>>
删除一年之前的日志文件
查看>>
IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)
查看>>
html字符串生成器源代码
查看>>
Crusher Django 学习笔记4 使用Model
查看>>
Sublime Text 3 快捷键汇总
查看>>
优化android studio编译的apk大小
查看>>
论证是一门学问
查看>>
Bad Request (Invalid Hostname)解决方法
查看>>
indy10 UDP实例
查看>>
POJ1274 The Perfect Stall(二分图)
查看>>
记录的习惯
查看>>
shell MAC 地址 校验
查看>>
函数式C代码
查看>>