python-套接字编程之tcp
服务端和客户端。
服务端脚本:
# Auther:AlphaPanda
# Description:server
# Version:1
# Date:Mon Dec 2 09:02:01 EST 2019 # 服务端
import socket
# 1 创建一个socket对象,默认按照tcp协议创建
sk = socket.socket()
# 2 绑定Ip和端口,在网络上注册该主机,让其他电脑找到这台服务器
sk.bind( ("127.0.0.1",9000) )
# 3 开启监听
sk.listen() # 4 三次握手
conn,addr = sk.accept()
print(conn,addr)
# 5 收发数据的逻辑
msg = conn.recv(1024) # 一次性,最多接收1024个字节
print(msg.decode("utf-8"))
conn.send("diyicifasong".encode("utf-8"))
# 6 四次挥手
conn.close() # 7 退还端口
sk.close()
客户端脚本:
#!/usr/bin/python3
# coding:utf-8
# Auther:AlphaPanda
# Description:socket tcp client
# Version:1
# Date:Mon Dec 2 09:09:22 EST 2019 # 客户端
import socket
# 1 创建socket对象
sk = socket.socket() # 2 连接服务器
sk.connect(("127.0.0.1",9000)) # 3 收发数据的逻辑
# send是用来发送数据的
sk.send("你吃饭了么".encode("utf-8"))
# recv是用来接收数据的
msg = sk.recv(1024)
print(msg.decode("utf-8"))
# 4 关闭连接
sk.close()
python-套接字编程之tcp的更多相关文章
- 异步套接字编程之select模型
█ 选择(select)模型是Winsock中最常见的 I/O模型.核心便是利用 select 函数,实现对 I/O的管理!利用 select 函数来判断某Socket上是否有数据可读,或者能否向 ...
- Python网络编程之TCP套接字简单用法示例
Python网络编程之TCP套接字简单用法示例 本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而jav ...
- 网络编程之TCP三次握手与四次挥手、基于TCP协议的套接字编程
目录 TCP三次握手和四次挥手 背景描述 常用的熟知端口号 TCP概述 TCP连接的建立(三次握手) TCP四次挥手 如果已建立连接,客户端突然断开,会怎么办呢? 基于TCP协议的套接字编程 什么是S ...
- python套接字解决tcp粘包问题
python套接字解决tcp粘包问题 目录 什么是粘包 演示粘包现象 解决粘包 实际应用 什么是粘包 首先只有tcp有粘包现象,udp没有粘包 socket收发消息的原理 发送端可以是一K一K地发送数 ...
- day29 python 套接字socket TCP udp 形式发送信息的区别
我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在 ...
- java网络编程之TCP通讯
java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...
- 网络传输编程之TCP
网络传输编程之TCP 网络传输编程指基于各种网络协议进行编程,包括TCP编程,UDP编程,P2P编程.本节介绍TCP编程. (1)TCP简介: TCP是TCP/IP体系中最重要的传输层协议 ...
- 网络编程之TCP编程
网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
随机推荐
- SpringBoot如何使用PUT、DELETE请求方式
SpringBoot 2.2.X默认不支持put,delete等请求方式的. 首先需要在配置文件中打开他们,代码如下: spring.mvc.hiddenmethod.filter.enabled=t ...
- jquery ajax get 数组参数
对一些get请求,但方法参数要求是数组或集合的,如下 public virtual ActionResult Test(List<int> ids) { return Json(" ...
- RSA加密 抛异常 algid parse error, not a sequence
JDK1.8环境 参考:BouncyCastle的使用:https://blog.csdn.net/qq_29583513/article/details/78866461 可解决 公钥解密 私钥加密 ...
- 【转】mysql索引的探究
转自:https://mp.weixin.qq.com/s/XTu7jERv3A0CIAzlECFnlA 相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结 ...
- TIDB学习资料
TiDB 源码阅读系列文章(一)序 TiDB 源码阅读系列文章(二)初识 TiDB 源码 TiDB 源码阅读系列文章(三)SQL 的一生 TiDB 源码阅读系列文章(四)Insert 语句概览 TiD ...
- Java基础(四)
概述 常用快捷键 数组 概述 数组是一种引用类型.变量只可以存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型. 如果需要存储的数据很多,那么定义多个变量很麻烦: I ...
- Python中.format()常见的用法
format()格式化输出 format():把传统的%替换为{}来实现格式化输出 format()常见的用法: ') >>>' 其实就是format()后面的内容,填入大括号中 ' ...
- 一道最大公约数的题:easy number
现有n个Zack,每个Zack有一个一个能力值,从这n个Zack中选出k个,使他们的最大公约数的值最大 [输入格式] 第一行有一个整数n,代表有n个Zack 第二行n个整数ai,代表每个Zack的能力 ...
- Comet OJ - Contest #14
Rank38. 还是比较不满意吧,C卡了太久,E没调出来,D也没空去做了. A 签到题. #include<bits/stdc++.h> using namespace std; #def ...
- java io 文件读写操作
写: import java.io.*; String filePath= "F:\\test.txt"; FileWriter fwriter = null; fwriter = ...