简单的同步Socket程序服务端
首先,Socket是.Net提供的
System.Net.Sockets命名空间的Scoket类为网络通信提供了一套丰富的方法和属性
服务器按照Socket的基本流程
先创建Socket
在用Bind绑定IP地址和端口号
之后用Listen等待客户端链接
最后在while循环中调用Accept接收客户端的链接
并回应消息
using System; using System.Net; using System.Net.Sockets;class MainClass {public static void Main(string[] args) {Console.WriteLine("Hello World");//SocketSocket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//BindIPAddress ipAdr = IPAddress.Parse("127.0.0.1");IPEndPoint ipEp = new IPEndPoint(ipAdr,1234);listenfd.Bind(ipEp);//Listenlistenfd.Listen(0);Console.WriteLine("[服务器]启动成功");while (true) {//AcceptSocket connfd = listenfd.Accept();Console.WriteLine("[服务器]Accept");//Recvbyte[] readBuff = new byte[1024];int count = connfd.Receive(readBuff);string str = System.Text.Encoding.UTF8.GetString(readBuff,0,count);Console.WriteLine("[服务器接收]" + str);//Sendbyte[] bytes = System.Text.Encoding.Default.GetBytes("serv echo " + str);connfd.Send(bytes);}}}
注释:
1.Socket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
它的3个参数分别代表地址族、套接字类型和协议
地址族指明是使用IPv4还是IPv6
2.Bind(ipEp)
将listenfd套接字绑定IP和端口。
3.Listen(0)
服务端开始监听,参数backlog制定队列中最多可容纳等待接受的连接数,0表示不受限制
4.Accept
服务器用来接收客户端链接。当没有客户端链接时,服务器程序会卡住,不会往下执行
5.Receive
服务器用来接收客户端数据
6.Send
服务器用来发送数据,参数为byte[]类型
可用System.Text.Encoding.Default.GetBytes(string);
将string类型转换为byte[]类型
转载于:https://www.cnblogs.com/fws94/p/7099857.html
简单的同步Socket程序服务端相关推荐
- 微信小程序服务端开发遇到的一些坑
微信小程序服务端开发遇到的一些坑 开发环境 问题集合 小程序不支持基于进入客服事件推送消息 小程序不支持永久素材 RestTemplate无法解析上传图片素材的返回 tips 其他小问题 开发环境 基 ...
- 实现一个简单的SSR,了解服务端渲染
在前面的文章中,我已经对服务端渲染有了充分介绍,并且实现了最简单的服务端渲染. 在这篇文章中,就基于React,一步一步来搭建一个服务端渲染的项目. 这里是github地址 react-ssr,欢迎s ...
- linux socket 阻塞服务端 非阻塞客户端,linux下异步RPC的阶段性总结-非阻塞SOCKET客户端...
尽可能使用非阻塞socket int flags, s; flags = fcntl (fd, F_GETFL, 0); if (flags == -1){ close(fd); return -1; ...
- iOS开发-使用OC搭建自己的Socket 包括服务端和客服端
iOS开发-使用OC搭建自己的Socket 包括服务端和客服端 前言 开发须知 客服端 服务端 两端测试 前言 iOS开发中需要使用到Socket通信的地方,socket分为UDP和TCP,这次分享的 ...
- 阿里云服务器上搭建微信小程序服务端环境。
无论是搭建个人博客空间也好,微信小程序也罢,搭建环境必需的两点:云服务器.域名,下面一步步给搭建演示如果在一台阿里云服务器上搭建微信小程序服务端环境. 1.云服务器准备:可在阿里云购买ECS服务器 ...
- SpringBoot(23) 集成socket.io服务端和客户端实现通信
一.前言 websocket和socket.io区别? websocket 一种让客户端和服务器之间能进行双向实时通信的技术 使用时,虽然主流浏览器都已经支持,但仍然可能有不兼容的情况 适合用于cli ...
- java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署
java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构 ...
- c# WINFORM SOCKET编程-简单聊天程序(服务端)
初学C#的SOCKET编程,照着网上的代码写下来,程序总是有问题,经过自己长时间的调试,完成程序,以下是原码,有需要可以参考一下,还不完善,欢迎大家批评指正.(这里的代码没更新,附件重新上传更新,在另 ...
- socket recv 服务端阻塞 python_网络编程(基于socket编程)
网络编程(基于socket编程) socket套接字:应用程序通常通过socket"套接字"向网络发送请求或应答网络请求,是主机间或同一计算机中的进程间相互通讯 socket是介于 ...
最新文章
- HDU 2822 Dogs【两次bfs】
- 31天重构学习笔记下载
- mysql中的钱null_MySQL数据库中null的知识点总结
- 【codevs2440】【BZOJ1066】蜥蜴,最大流
- 解决64位进程调用32位库文件报错问题
- Svn装到eclipse
- Error:不允许有匹配 [xX][mM][lL] 的处理指令目标。
- Maven打包三种方法和常用命令大全
- matlab实验七阶跃信号,信号与系统MATLAB实验
- linux下mysql免安装_linux下免安装版本mysql5.5 配置
- python做网络图_使用Python的networkx绘制精美网络图教程
- vPro平台再进化:专为商务而生,助力企业数字化大时代
- 【Linux】Linux input子系统之Input event codes
- 【0022】没办法,你只能从“糟糕的”产品经理做起
- Mock 模拟测试简介及 Mockito 使用入门
- 学习Flask之blueprint
- 【CSS3】text-shadow/text-overflow,边框图片,透明度,小米轮播图子菜单另一种实现,覆盖准则
- 结构化 VS 非结构化
- 10月新电影让KOOCAN吃了土,11月连土都没得吃了
- 什么是DBA?怎样成为一个DBA?