一、TCP/IP的套接字编程

服务器端代码:

import  socket​server = socket.socket() # 默认是基于TCP# 基于TCP的对象serve=socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)# 基于UDP的对象serve=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)​server.bind(("127.0.0.1",8888))  #绑定服务器IP地址和端口​server.listen()  #监听是否有握手请求,参数一般不写(由系统默认处理)或者不超过5个​​​while True:    client,addr = serve.accept()  #得到对方的socket对象和地址    while True:        try:            data = client.recv(1024)  #1024表示应用程序的缓冲区大小,recv是从系统缓冲区读取数据到应用程序bytes            if not data: # 如果是windows,对方强行关闭连接,会抛出异常,如果是linux,不会抛出异常,会死循环收到空的数据包。                print("对方已经关闭.....")                client.close()                break            print(data.decode("utf-8"))  # 收到的数据解码并打印            client.send(data.upper())        except ConnectionResetError:            print("对方异常关闭连接...")   client.close()            breakserver.close()

用户端代码:

import socket​client = socket.socket()​client.connect(("127.0.0.1",8888))​while True:    msg = input(">:")    client.send(msg.encode("utf-8"))    data = client.recv(1024)    print("收到服务器:%s" % data.decode("utf-8"))​client.close()

半连接池:此处待续

二、UDP/IP的套接字编程

服务器端代码:

import socket​# UDP协议 在创建socket时只有一个类型不同(SOCK_DGRAM)server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,proto=0)​server.bind(("127.0.0.1",8888))# 没有监听listen,没有accept​while True:    data,addr = server.recvfrom(1024) # 阻塞 直到收到数据为止    print("收到来自%s的消息:%s" % (addr[0],data.decode("utf-8")))  # addr是元组,包含客户端IP和端口号    # 返回值为 数据 和 对方ip地址 和端口号    server.sendto(data.upper(),addr)​server.close()

客户端代码:

import socket# 客户端也为SOCK_DGRAMclient = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)​​while True:    data = input(">>:").encode("utf-8")    client.sendto(data,("127.0.0.1",8888))  #服务器端IP与端口    d,addr = client.recvfrom(1024)    print(d.decode("utf-8"))​client.close()

转载于:https://www.cnblogs.com/realadmin/p/10179264.html

20181225 基于TCP/IP和基于UDP/IP的套接字编程相关推荐

  1. TCP套接字编程(C语言)

    本篇主要内容介绍: 介绍TCP套接字基本概念 介绍TCP套接字编程流程 基本TCP套接字函数介绍 1.TCP套接字基本概念(非官方解释,个人总结) 套接字是一种网络API,提供一种进程间的通信方法,使 ...

  2. udp协议没有粘包问题、基于socketserver实现并发的socket(基于tcp、udp协议)、基于udp协议的套接字、操作系统原理以及进程知识

    基于udp协议的套接字通信服务端 from socket import *server=socket(AF_INET,SOCK_DGRAM) #数据报协议->udp server.bind((' ...

  3. TCP/IP网络编程---Linux系统下的TCP套接字编程

    目录 第一章 理解网络编程和套接字 1.1 网络编程和套接字概要 1.2 基于Linux的文件操作 1.2.1 底层文件访问和文件描述符 1.2.2 打开文件 1.2.3 关闭文件 1.2.4 将数据 ...

  4. 基于UDP协议的socket套接字编程 基于socketserver实现并发的socket编程

    基于UDP协议 的socket套接字编程 1.UDP套接字简单示例 1.1服务端 import socketserver = socket.socket(socket.AF_INET,socket.S ...

  5. 套接字编程——基于UDP协议

    <UDP用到的大多数函数在上一片TCP中已讲解,这儿就不再重复了,只有接受和发送所用的函数不同> 函数 (1)接受--recvfrom() (2)发送--sendto() a. 参数 so ...

  6. 基于UDP协议的套接字+socketserver模块

    基于UDP协议的套接字 user datagram protocal 数据报协议 无双向通道.自带报头.类似发短信.不会粘包 不可靠:数据发送时,丢就丢了 UDP socket: 服务端: impor ...

  7. TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项

    基本概念: SO_REUSEADDR套接字选项能起到以下4个不同的功用: (1)SO_REUSEADDR允许启动一个监听服务器并捆绑众所周知端口,即使以前建立的该端口用作它们的本地端口的连接仍存在. ...

  8. day26-2 基于TCP协议的套接字编程

    目录 基于TCP协议的套接字编程 套接字 套接字工作流程 基于TCP协议的套接字编程(简单) 服务端 客户端 基于TCP协议的套接字编程(循环) 服务端 客户端1 客户端2 基于TCP协议的套接字编程 ...

  9. TCP/IP网络编程——理解网络编程和套接字编程

    完整版文章请参考: TCP/IP网络编程完整版文章 文章目录 一.理解网络编程和套接字编程 1.1 socket套接字 1.1.1 一个例子来表示TCP的网络连接 1.1.2 程序实现 1.2 文件操 ...

最新文章

  1. 限制用户对页的访问php,如何限制对Django中管理页的访问?
  2. Android UI库书签
  3. springmvc5源码
  4. dsp广告和信息流广告区别_信息流广告和sem广告有哪些区别2021?
  5. cartographer环境配置及运行
  6. idea 配置 maven 和 镜像
  7. 我的世界服务器怎么修改标语,怎么用资源包修改我的世界闪烁标语
  8. 超详细SPSS主成分分析计算指标权重(二:权重计算及极差法标准化)
  9. php和jsp有什么区别,php和jsp之间的区别是什么
  10. 微信小程序关于map地图
  11. 人脸识别与膜虹识别_虹膜识别技术优势明显 比指纹、人脸识别更可靠
  12. 双绞线的种类与选择:
  13. python 头条新闻机器人_荐GitHub:今日头条机器人
  14. 金启孮:普通话其实是满州人的蹩脚汉语
  15. 东方财富、同花顺、大智慧、通达信的Level2行情接口哪个好?
  16. 转载-大数据管理神器:Ambari自定义stack和服务二次开发详细教程
  17. suunto android 跑步软件,SUUNTO APP | 自定义运动模式教程
  18. 分布式任务调度平台之 xxl-job配置部署
  19. Python编程-从入门到实践 Chapter19 第19章 创建用户账户的坑
  20. 为Electron 打包后的桌面程序添加自定义向导

热门文章

  1. linux导出Excel The maximum column width for an individual cell is 255 characters
  2. UVA 11549 Calculator Conundrum
  3. php cookie赋值使用
  4. WPF——Expander控件(转)
  5. GitHub人脸属性编辑神器横空出世!让你爱上异性的自己!
  6. CVPR 2021 图像压缩最新进展
  7. ECCV 2020 目标检测与跟踪赛事,清华大学主办 GigaVision 2020 欢迎报名~
  8. 穿墙透视真的来了!MIT华人团队超强动作检测模型,小黑屋照样夜视
  9. 【TensorFlow】TensorFlow从浅入深系列之九 -- 教你认识图像识别中经典数据集
  10. LQR轨迹跟踪算法Python/Matlab算法实现2