python socket实例
1.客户端向服务端发送
#coding:utf-8
'''客户端'''
import socket
khd=socket.socket() #声明socket类型,同时生产socket连接对象
khd.connect(('localhost',2345)) #连接
khd.send('应用')
data=khd.recv(1024)
print("recv:",data)
khd.close()
#coding:utf-8
'''服务端'''
import socket
fuwud=socket.socket() #()内不写东西的话,代表第一个地址簇AF.INET
fuwud.bind(('localhost',2345)) #绑定要监听端口
fuwud.listen(5) #监听
print"等待中。。。。"
conn,addr=fuwud.accept() #等数据进来#conn就是客户端连过来而在服务端为其生成的一个连接实例,连接标志。addr对方的地址addr对方的地址
print conn,addr
print'开始了!'
data=conn.recv(1024)
print "recv:",data
conn.send(data.upper())
fuwud.close()
先运行服务端再运行客户端
结果:
等待中。。。。
<socket._socketobject object at 0x021BCED8> ('127.0.0.1', 64335) 这里的端口64335是随机的。
开始了!
recv: 应用
注:khd.send(b'holle,world') 这里的byci只解释acssii的数据,发送中文不用添加b
2.服务器接受客户端发来的4次消息后,自动断开。
#coding:utf-8
'''服务端'''
import socket
fuwud=socket.socket()
fuwud.bind(('localhost',2345)) #绑定要监听端口
fuwud.listen(5) #监听
print"等待中。。。。"
while True: conn,addr=fuwud.accept() #等数据进来#conn就是客户端连过来而在服务端为其生成的一个连接实例,连接标志。addr对方的地址print conn,addrprint'开始了!'c=0while True: data=conn.recv(1024)print "recv:",dataconn.send(data.upper()) if c>4: #从客户端接受4次 ,服务器端自动断开。breakc=c+1print cfuwud.close()
#coding:utf-8
'''客户端'''
import socket
khd=socket.socket() #声明socket类型,同时生产socket连接对象
khd.connect(('localhost',2345)) #连接
while True:khd_data=raw_input('>>:')if len(khd_data) == 0:continue #send不能发送空值khd.send(khd_data)data=khd.recv(1024)print("recv:",data)
khd.close()
3.服务器端可以实现接受多个线程的信息。
#coding:utf-8
'''服务端'''
import socket
fuwud=socket.socket()
fuwud.bind(('localhost',2345)) #绑定要监听端口
fuwud.listen(5) #监听
print"等待中。。。。"
while True: conn,addr=fuwud.accept() #等数据进来#conn就是客户端连过来而在服务端为其生成的一个连接实例,连接标志。addr对方的地址print conn,addrprint'开始了!'c=0while True: data=conn.recv(1024)print "recv:",dataconn.send(data.upper()) c=c+1if c>4: break print c
fuwud.close()
运行多个客户端。
#coding:utf-8
'''客户端'''
import socket
khd=socket.socket() #声明socket类型,同时生产socket连接对象
khd.connect(('localhost',2345)) #连接
while True:khd_data=raw_input('>>:') if len(khd_data) == 0:continuekhd.send(khd_data)data=khd.recv(1024) print("recv:",data)
khd.close()
4.服务器、客户端实现系统操作
#coding:utf-8
'''服务端'''
import os
import socket
fuwud=socket.socket()
fuwud.bind(('localhost',2345)) #绑定要监听端口
fuwud.listen(5) #监听
print"等待中。。。。"
while True: conn,addr=fuwud.accept() #等数据进来#conn就是客户端连过来而在服务端为其生成的一个连接实例,连接标志。addr对方的地址print conn,addrprint'开始了!'c=0while True: data=conn.recv(1024)print "recv:",datares=os.popen(data).read()conn.send(res) c=c+1if c>4: break print c
fuwud.close()
#coding:utf-8
'''客户端'''
import socket
khd=socket.socket() #声明socket类型,同时生产socket连接对象
khd.connect(('localhost',2345)) #连接
while True:khd_data=raw_input('>>:') if len(khd_data) == 0:continuekhd.send(khd_data)data=khd.recv(1024) print("recv:",data)
khd.close()
5.服务端:
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
参数一:地址簇
socket.AF_INET IPv4(默认)
socket.AF_INET6 IPv6
socket.AF_UNIX 只能够用于单一的Unix系统进程间通信
参数二:类型
socket.SOCK_STREAM 流式socket , for TCP (默认)
socket.SOCK_DGRAM 数据报式socket , for UDP
socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
socket.SOCK_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。
socket.SOCK_SEQPACKET 可靠的连续数据包服务
参数三:协议
0 (默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议
具体参考:http://www.cnblogs.com/wupeiqi/articles/5040823.html
import socket
server=socket.socket(AF_INET,sock.SOCK_STREAM)
server.bind(localhost,9999) 绑定端口监听
server.listen()
while true: #可以接受新的链接conn,addr=server.accept()#阻塞while true:data=conn.recv(8192)#recv默认是阻塞的if not data:break #避免客户端断开,conn.recv收到的是空数据conn.send(data.upper())#如果发送出去
转载于:https://www.cnblogs.com/iexperience/p/9225369.html
python socket实例相关推荐
- python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)
本文实例讲述了python socket多线程通讯方法.分享给大家供大家参考,具体如下: #!/usr/bin/evn python """ 这是一个Socket+多进程 ...
- python代码实例sicket_Python socket聊天脚本代码实例
这篇文章主要介绍了Python socket聊天脚本代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 没有前端,多开了一条线程用于接收信息. ...
- Python Socket请求网站获取数据
Python Socket请求网站获取数据 ---阻塞 I/O ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...
- 【转】 python socket向百度发送http长连接请求 并做搜索
http://hi.baidu.com/leejun_2005/blog/item/30fe9bd23a396c28960a1640.html [转] python socket向百度发送http长连 ...
- python实现文件上传和下载_[Python] socket实现TFTP上传和下载
一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...
- python socket编程_Python学习记录-socket编程
1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...
- python/socket编程之粘包
python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 发 ...
- Python Socket网络编程(一)初识Socket和Socket初步使用
目录 前言 网络编程 实质 IP地址和端口 数据传输协议 协议 Socket 概念 套接字 socket对象方法 初步使用 功能 源码 运行结果 结语 前言 本系列博客是笔者学习Python Sock ...
- 饱暖思淫欲之美女图片的Python爬虫实例(二)
美女图片的Python爬虫实例:面向服务器版 ==该爬虫面向成年人且有一定的自控能力(涉及部分性感图片,仅用于爬虫实例研究)== 前言 初始教程 存在问题 解决思路 目标 实现步骤 硬件配置 服务器信 ...
最新文章
- 日本光伏相关企业倒闭数量上升 帝国征信调查
- 读谷歌编码规范所想到的
- boost::hana::detail::type_at用法的测试程序
- HDU - 1728 逃离迷宫(bfs)
- 20145214 《Java程序设计》第3周学习总结
- Java关键字(53个关键字)
- mapreduce实现矩阵相乘
- 特征工程一:特征缩放、选择
- Opencv+Moviepy实现涂鸦视频和视频音轨分离合并操作。
- 山东大学项目实训十五——开源万能解码框架解决
- 安装vum、npm、cnpm、vue/cli
- jQuery 键盘快捷键
- 【转载】《周一清晨的领导课》读书笔记!!!
- pybind11学习 | 面向对象编程
- bat脚本使用winRAR命令行压缩文件
- python抽奖游戏大全_python实现转盘效果 python实现轮盘抽奖游戏
- Java8新特性----Lambda表达式详细探讨
- 高职医学计算机考试科目一模拟试题及答案,医药卫生(临床医学类专业除外)和高职单招对口医学类联考职业技能测试考试大纲...
- 前端开发-后台信息管理页面的开发流程
- Chapter 3 (Determinants): Cramer‘s rule, volume, and linear transformations (克拉默法则、体积和线性变换)
热门文章
- 内推 | 2023hw人员招聘
- 免费PPT模板网站大全
- USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位
- 管理系统中计算机应用第二章思维导图,第二章 项目范例:剖析网络订票系统 课件(15张PPT)...
- 用python写 祝你生日快乐英文_用英语祝你生日快乐的10种方式,太实用了!
- vce数学考试能用计算机,VCE课程的数学学科
- 高级计量经济学及stata应用 学习笔记② 短面板
- angular和vue和react的区别
- 小米2S手机,手机连接数据线到电脑上没反应(Win7/8)
- 局域网中无法访问的解决方法