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实例相关推荐

  1. python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)

    本文实例讲述了python socket多线程通讯方法.分享给大家供大家参考,具体如下: #!/usr/bin/evn python """ 这是一个Socket+多进程 ...

  2. python代码实例sicket_Python socket聊天脚本代码实例

    这篇文章主要介绍了Python socket聊天脚本代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 没有前端,多开了一条线程用于接收信息. ...

  3. Python Socket请求网站获取数据

     Python Socket请求网站获取数据 ---阻塞 I/O     ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...

  4. 【转】 python socket向百度发送http长连接请求 并做搜索

    http://hi.baidu.com/leejun_2005/blog/item/30fe9bd23a396c28960a1640.html [转] python socket向百度发送http长连 ...

  5. python实现文件上传和下载_[Python] socket实现TFTP上传和下载

    一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...

  6. python socket编程_Python学习记录-socket编程

    1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...

  7. python/socket编程之粘包

    python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 发 ...

  8. Python Socket网络编程(一)初识Socket和Socket初步使用

    目录 前言 网络编程 实质 IP地址和端口 数据传输协议 协议 Socket 概念 套接字 socket对象方法 初步使用 功能 源码 运行结果 结语 前言 本系列博客是笔者学习Python Sock ...

  9. 饱暖思淫欲之美女图片的Python爬虫实例(二)

    美女图片的Python爬虫实例:面向服务器版 ==该爬虫面向成年人且有一定的自控能力(涉及部分性感图片,仅用于爬虫实例研究)== 前言 初始教程 存在问题 解决思路 目标 实现步骤 硬件配置 服务器信 ...

最新文章

  1. 日本光伏相关企业倒闭数量上升 帝国征信调查
  2. 读谷歌编码规范所想到的
  3. boost::hana::detail::type_at用法的测试程序
  4. HDU - 1728 逃离迷宫(bfs)
  5. 20145214 《Java程序设计》第3周学习总结
  6. Java关键字(53个关键字)
  7. mapreduce实现矩阵相乘
  8. 特征工程一:特征缩放、选择
  9. Opencv+Moviepy实现涂鸦视频和视频音轨分离合并操作。
  10. 山东大学项目实训十五——开源万能解码框架解决
  11. 安装vum、npm、cnpm、vue/cli
  12. jQuery 键盘快捷键
  13. 【转载】《周一清晨的领导课》读书笔记!!!
  14. pybind11学习 | 面向对象编程
  15. bat脚本使用winRAR命令行压缩文件
  16. python抽奖游戏大全_python实现转盘效果 python实现轮盘抽奖游戏
  17. Java8新特性----Lambda表达式详细探讨
  18. 高职医学计算机考试科目一模拟试题及答案,医药卫生(临床医学类专业除外)和高职单招对口医学类联考职业技能测试考试大纲...
  19. 前端开发-后台信息管理页面的开发流程
  20. Chapter 3 (Determinants): Cramer‘s rule, volume, and linear transformations (克拉默法则、体积和线性变换)

热门文章

  1. 内推 | 2023hw人员招聘
  2. 免费PPT模板网站大全
  3. USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位
  4. 管理系统中计算机应用第二章思维导图,第二章 项目范例:剖析网络订票系统 课件(15张PPT)...
  5. 用python写 祝你生日快乐英文_用英语祝你生日快乐的10种方式,太实用了!
  6. vce数学考试能用计算机,VCE课程的数学学科
  7. 高级计量经济学及stata应用 学习笔记② 短面板
  8. angular和vue和react的区别
  9. 小米2S手机,手机连接数据线到电脑上没反应(Win7/8)
  10. 局域网中无法访问的解决方法