C#线程池多线程Socket通讯 服务器端和客户端示例
来源:互联网 发布:水果店会员卡软件 编辑:程序博客网 时间:2024/05/21 08:41
using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;namespace socket2016{ class Program { static void Main(string[] args) { //服务器端 Socket sktltn = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sktltn.Bind(new IPEndPoint(IPAddress.Any, 12345)); sktltn.Listen(30); while (true) { Socket sk = sktltn.Accept(); //ThreadPool.SetMaxThreads(10, 10); ThreadPool.QueueUserWorkItem(p => { Socket skc = (Socket)sk; byte[] array = new byte[10240]; int offset = 0; while (true) { int len = skc.Receive(array, offset, array.Length - offset, SocketFlags.None); if (len == 0) { break; } offset += len; } string content = Encoding.UTF8.GetString(array, 0, offset); Console.WriteLine("> " + content); }, sk); } } }}
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace socket2016Client{ class Program { static void Main(string[] args) { //客户端 Console.WriteLine("输入文字,回车发送"); while (true) { string str = Console.ReadLine(); if (str.Length > 0) { Socket sktc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sktc.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12345)); byte[] bytes = Encoding.UTF8.GetBytes(str); int offset = 0; while ((offset += sktc.Send(bytes, offset, bytes.Length - offset, SocketFlags.None)) < bytes.Length) ; sktc.Close(); } } } }}
0 0
- C#线程池多线程Socket通讯 服务器端和客户端示例
- udp 多线程客户端和单线程服务器端
- Java中使用Socket实现服务器端和客户端通讯
- 简单的socket通讯方法客户端和服务器端
- Java Socket 模拟客户端与服务器端通讯
- socket用线程实现客户端和服务器端连续发送数据
- java socket实现的客户端和服务器端,服务器采用多线程实现,为每个客户分配一个线程
- 多线程Java Socket编程示例 线程池
- java Socket客户端和服务器端
- 【Android】Socket通讯示例(服务端/客户端)
- linux局域网通讯源码(服务器多路复用和客户端多进程模式)(socket)服务器端
- 直播项目,在线聊天功能--socket实现客户端和服务器端通讯的简单案例
- socket通讯 客户端和服务端
- Socket客户端和服务端通讯
- C# Socket通信 客户端 服务器端代码
- android 客户端 C#服务器端 socket 通信
- PHP客户端与C#服务器端 Socket通信
- C# socket通信 模拟服务器端、客户端
- Android动画
- Android Service学习之AIDL, Parcelable和远程服务
- android 6.0 vold shutdown流程
- ExecutorService的execute和submit方法区别
- Android Studio目录结构浅析
- C#线程池多线程Socket通讯 服务器端和客户端示例
- find
- C#Winform删除DataGridView中被选中的行
- 区块链的未来潜力
- jsp 取 map<String,List>值
- Android 判断imageview角度并旋转
- windows下 在cmd 中 后台运行程序 关闭程序
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- svg线条动画基础