TCP/IP
三次握手 第一次 A向B 发送 syn 请求 然后B给A返回 syn + ack A收到后,给B返回ack 握手成功。 Socket 网络编程
实现通信 要通过IP+Port Socket是对所有上层协议的封装,它只关注 发送数据 和 接收数据 Socket使用方法:
--发送端 伪代码 import socket # 声明协议
socket.TCP/IP # 建立连接
connect(a.ip,a.port) # 发送请求
socket.sent(hello) socket.recv() socket.close()
--------------------- --接收端 伪代码 import socket # 声明协议
socket.TCP/IP # 监听端口 (监听IP,监听端口)
listen(0.0.0.0,9990) # 等待链接
waiting() # 接收数据
recv() send() Socket Families (地址簇)
socket.AF_UNIX 本机进程间通信
socket.AF_INET IPV4
socket.AF_INET6 IPV6 Socket Types
socket.SOCK_STREAM # for tcp
socket.SOCK_DGRAM # for udp
socket.SOCK_raw # 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而它可以。其次SOCK_RAW也可以处理特殊的
socket.SOCK_RDM # 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。

客户端代码:

#!/usr/bin/env python

import  socket

# 申明协议类型
client = socket.socket() #申明socket类型,同事生成socket连接对象 # 设置请求端口
client.connect(("localhost",6969)) while True:
msg = input(">>:").strip()
#发送数据
#client.send(b"Hello World")
client.send(msg.encode("utf-8"))
data = client.recv(1024) print("recv:",data.decode()) client.close()

服务端代码:

#!/usr/bin/env python

import  socket

# 声明协议
server = socket.socket() server.bind(("localhost",6969)) # 绑定要监听的端口 server.listen() # 监听 print("等待通信中。。。")
# 等待通信
# conn就是客户端连过来,而在服务器端为其生成的一个连接实例
conn,addr = server.accept() # 它会返回两个值 一个是连接对象,另一个是链接地址
print("conn,addr",conn,addr)
print("消息来啦...")
while True:
# 接受信息
data = conn.recv(1024) print("recv:",data.decode()) conn.send(data) server.close()

pythonのSocket的更多相关文章

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. Python Socket 网络编程

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  3. python socket发送魔法包网络唤醒开机.py

    python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...

  4. Python socket编程之二:【struct.pack】&【struct.unpack】

    import struct """通过 socket 的 send 和 recv 只能传输 str 格式的数据""" "" ...

  5. Python Socket,How to Create Socket Server? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  6. Python Socket,How to Create Socket Cilent? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  7. Python Socket通信原理

    [Python之旅]第五篇(一):Python Socket通信原理   python Socket 通信理论 socket例子 摘要:  只要和网络服务涉及的,就离不开Socket以及Socket编 ...

  8. Python Socket单线程+阻塞模式

    Python之旅]第五篇(二):Python Socket单线程+阻塞模式 python Socket单线程 Socket阻塞模式 串行发送 摘要:  前面第五篇(一)中的一个Socket例子其实就是 ...

  9. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  10. python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题

    今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...

随机推荐

  1. re-download dependencies and 无法下载jar 的解决

    Re-download dependencies and sync project (requires network) 其实就是修改gradle 的path 路径:

  2. 定制kickstart重建CentOS7.5镜像用于U盘引导安装

    有什么问题或者疑惑,可以留言,全力解答. ISO 镜像制作 U 盘安装盘 U盘安装CentOS7.4 U盘实现CentOS7.3全自动安装系统 https://www.cnblogs.com/pany ...

  3. qt: qt install framework使用问题;

    qt提供了qt install framework用于程序打包,方便.快捷,并且可以对界面和功能进行自定义. 但是, 如果使用默认的打包配置,不进行安装页面功能自定义的话, 在修改安装路径时,在对程序 ...

  4. CodeForces755F 贪心 + 多重背包二进制优化

    https://cn.vjudge.net/problem/615831/origin 题意 n个人;  计划是每个人都拿一个礼物来送给一个除了自己之外的人;  如果一个人没有送出礼物,那么它和它送礼 ...

  5. CodeForces920E 链表强优化BFS

    http://codeforces.com/problemset/problem/920/E 题意:求一个图的补图的连通分量个数以及每个连通分量里的点个数 如果这不是一个补图,BFS或者并查集可过,但 ...

  6. 【.NET】SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间

    #背景 向sqlserver数据库中一个datetime字段插入DateTime.MinValue时, 出现问题: SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 ...

  7. H5新属性FileReader实现选择图片后立即显示在页面上

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. mysql安装绑定my.ini

    Windows操作系统中,我们安装Mysql有两个选择: 一是下载MSI点击运行,利用windows系统安装程序的方法按部就班的来安装: 二是下载ZIP,解压出来就能立即使用. 在使用ZIP安装时,安 ...

  9. SQLyog远程连接腾讯云服务器数据库Mysql遇到的坑

    首先说明我的数据库是安装在云服务器上,不是专业的数据库服务器,没错就是10块钱包月的. 然后觉得使用SQLyog远程维护数据库比较方面,可是怎么都登录不上去. 下面分析原因: 1.安全组是否放过了访问 ...

  10. 【leetcode70】【动态规划】 爬楼梯

    (1 pass 一维动态规划) 爬楼梯(easy) 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数 ...