socket创建TCP服务端和客户端
看情况选择相对应的套接字
*面向连接的传输--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()
socket创建TCP服务端和客户端的更多相关文章
- swoole创建TCP服务端和客户端
服务端: server.php <?php //创建Server对象,监听 127.0.0.1:9501端口 $serv = new swoole_server("127.0.0 ...
- python创建tcp服务端和客户端
1.tcp服务端server from socket import * from time import ctime HOST = '' PORT = 9999 BUFSIZ = 1024 ADDR ...
- socket创建UDP服务端和客户端
UDP服务端代码示例: from socket import * #1.创建数据报套接字 sockfd = socket(AF_INET, SOCK_DGRAM) #2.绑定服务端地 sockfd.b ...
- go --socket通讯(TCP服务端与客户端的实现)
这篇文章主要使用Go语言实现一个简单的TCP服务器和客户端.服务器和客户端之间的协议是 ECHO, 这个RFC 862定义的一个简单协议.为什么说这个协议很简单呢, 这是因为服务器只需把收到的客户端的 ...
- Java TCP服务端向客户端发送图片
/** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- 基于Select模型的Windows TCP服务端和客户端程序示例
最近跟着刘远东老师的<C++百万并发网络通信引擎架构与实现(服务端.客户端.跨平台)>,Bilibili视频地址为C++百万并发网络通信引擎架构与实现(服务端.客户端.跨平台),重新复习下 ...
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...
- vertx 从Tcp服务端和客户端开始翻译
写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = ve ...
随机推荐
- 一键安装 zabbix 3.0 版本 脚本
原文地址: http://blog.csdn.net/u012449196/article/details/53859068 本文修改了原文中的部分错误,此脚本适用于zabbix 2.0 或 3.0 ...
- storm(一) window机制
Watermark作用 在解释storm的window之前先说明一下watermark原理. Watermark中文翻译为水位线更为恰当. 顺序的数据从源头开始发送到到操作,中间过程肯定会出现数据乱序 ...
- Maven 修改默认JDK版本
方式1.修改maven全局jdk 修改 安装目录\maven2\conf\settings.xml <profiles> <profile> <id>jdk-1.6 ...
- Asp.net mvc word预览与打印
解决方案: 1. 在后台把word文件转化成pdf,在前台用iframe显示pdf,打印iframe,即可. 优点:用户体验好. 缺点:不支持IE. 实现 : 引用netoffice组件 主要代码: ...
- Dive into Spring framework -- 搭建spring 源码的开发环境
spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源.记录于此, ...
- SpringBoot学习(1)
内容概要: spring data springboot是spring团队基于spring4开发的一个框架. springboot来简化spring应用开发,约定大于配置,去繁从简,just run就 ...
- CSP(Content Security Policy) 入门教程
参考: http://www.ruanyifeng.com/blog/2016/09/csp.html https://developer.mozilla.org/en-US/docs/Web/HTT ...
- SVN更新操作提示需要清理操作,清理操作提示乱码,更新SVN失败
1.下载sqlite3.exe,下载方式如下: 1):sqlite网址:https://www.sqlite.org/download.html (根据操作系统自行下载) 2.下载的文件解压后将sql ...
- Linux 踩坑记录
1. Linux系统上用火狐浏览器看视频的时候发现没有安装flash player插件,无法播放视频.简单几步安装插件,就可以快乐地使用linux系统看视频了. 步骤如下: 一.打开视频网站时提示无法 ...
- 记录selenium操作
# -*- coding: utf-8 -*- # coding:utf-8 必须在第一行才能支持中文注释 #!/usr/bin/python # android-build.py # Build a ...