socket创建TCP服务端和客户端
2024-08-24 11:39:25
看情况选择相对应的套接字
*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)
*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM)
在liunx中 telnet ip port 可以当成临时客服端
服务端示例: 创建服务端示例:
from socket import * #创建套接字(参数:地址族类型,套接字类型,选定子协议类型)
sockfd = socket(AF_INET,SOCK_STREAM,proto = 0) #绑定地址(功能:绑定地址,参数(ip,port))
sockfd.bind(("0.0.0.0",9099)) #设置监听(参数:监听队列的大小)
sockfd.listen(5) #等待接收连接(会进行阻塞,当客户端连接就往下运行)
#返回值:connfd 新的套接字,用于和客户端通信,add 连接客户端的地址(ip,port)
print("Waiting for connect...")
connfd,addr = sockfd.accept()
print("Connect from",addr) #收发消息(没接收到消息也会进行阻塞)
#参数:一次接收消息的大小字节(bytes格式)
data = connfd.recv(1024)
print(data) #要发送的内容(bytes格式),返回实际发送的字节数
n = connfd.send(b"Receive your message")
print(n)
#关闭套接字
connfd.close()
sockfd.close() 客户端示例:
from socket import * #创建套接字
sockfd = socket(AF_INET,SOCK_STREAM) #发起连接
server_addr = ("127.0.0.1",9099)
sockfd.connect(server_addr) #收发消息
data = input("发送>>")
sockfd.send(data.encode()) #将字符串转换成二进制 data = sockfd.recv(1024)
print("接收到:",data.decode()) #关闭字节套
sockfd.close()
最新文章
- 转载文章——从HelloWorld学习操作系统
- Ecmascript 6新特性
- C语言程序设计入门学习五步曲(转发)
- app之间的跳转,进入二级界面
- Objective 多态
- 理解Linux系统/etc/init.d目录和/etc/rc.local脚本
- MySQL 主键范围查找问题
- Java垃圾回收以及内存分配
- Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践
- iOS 非ARC基本内存管理系列 4-autorelease方法和@autoreleasepool
- 一次plsql 问题记录
- HDU 4010.Query on The Trees 解题报告
- php按址传递bug
- 【高精度递推】【HDU1297】Children’s Queue
- 关于jstl的使用
- PHP源代码加密
- 三剑客之awkd的基本使用
- 搭建RDA交叉编译器
- iOS - APP审核Guideline 2.5.1被拒,使用了私有API
- 测试开发-PC客户端测试要点
热门文章
- gulp构建例子(ubuntu)
- 第八篇:Spark SQL Catalyst源码分析之UDF
- jQuery实现输入框提示,当获取焦点时提示消失,当失去焦点时内容为空则显示提示,否则保留输入信息
- caffe2+cuda+Ubuntu16.04(u盘安装)
- 素数分布 - nefu 117
- 01_MySQL DQL_基础查询
- Android开发-ADT Bundle安装
- 简单搭建FastDFS分布式文件系统(简单易懂)
- vs2012 在调试或运行的过程中不能加断点
- Android真机调试——远程主机强迫关闭了一个现有的连接。