Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
来源:互联网 发布:矩阵齐次分解 编辑:程序博客网 时间:2024/05/05 11:15
服务器端代码
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Net;
- using System.Net.Sockets;
- using System.Threading;
- namespace TCP通信
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- //把ip地址转换为实例
- IPAddress ipa = IPAddress.Parse("127.0.0.1");
- //监听端口8001
- TcpListener mylsn = new TcpListener(ipa, 8001);
- //开启监听
- mylsn.Start();
- //输出监听成功的信息
- Console.WriteLine("在8001启动服务,等待连接");
- //等待处理接入连接请求
- while (true)
- {
- Socket mysock = mylsn.AcceptSocket();
- Console.WriteLine("有连接,连接来自" + mysock.RemoteEndPoint);
- work w = new work();
- w.mysock = mysock;
- w.mylsn = mylsn;
- Thread t = new Thread(new ThreadStart(w.main));
- t.Start();
- }
- }
- catch
- { }
- finally
- { }
- }
- }
- public class work
- {
- public Socket mysock;
- public TcpListener mylsn;
- public void main()
- {
- //接收客户端消息
- byte[] data = new byte[100];
- mysock.Receive(data);
- string rt = System.Text.UTF8Encoding.UTF8.GetString(data);
- Console.WriteLine(rt);
- //给客户端发消息
- mysock.Send(UTF8Encoding.UTF8.GetBytes("回发给客户端"));
- //释放资源
- mysock.Close();
- mylsn.Stop();
- }
- }
- }
客户端代码
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- using System.Net;
- using System.Net.Sockets;
- namespace TCP通信客户端
- {
- public class Class1
- {
- public static void Main()
- {
- //新建客户端套接字
- TcpClient tclient = new TcpClient();
- //连接服务器
- tclient.Connect("127.0.0.1", 8001);
- Console.WriteLine("输入要发送的消息");
- //读入要传输的字符
- string str = Console.ReadLine();
- //得到流
- Stream stm = tclient.GetStream();
- //发送字符串
- ASCIIEncoding asen = new ASCIIEncoding();
- byte[] data = asen.GetBytes(str);
- stm.Write(data, 0, data.Length);
- //接受服务器返回的消息
- byte[] back = new byte[100];
- int k = stm.Read(back, 0, 100);
- //输出服务器返回的消息
- for (int i = 0; i < k; i++)
- {
- Console.Write(Convert.ToChar(back[i]));
- }
- //关闭连接
- tclient.Close();
- }
- }
- }
根据TCP/IP设计者的设计初衷,当mysock.Close()以后用命令netstat -a -n查看本地连接的时候对应的链接状态为 TIME_WAIT。该连接由系统自动关闭。
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- 网络编程 一个服务器同时为多个客户端服务
- 为什么多个客户端可以连接服务器的同个端口?
- socket实现多个客户端连接在一个服务器上
- Socket 编程,一个服务器,多个客户端,互相通信(分享)
- Socket 编程,一个服务器,多个客户端,互相通信
- Socket编程,一个服务器与多个客户端
- socket编程补充---一个服务器多个客户端
- Socket 编程,一个服务器,多个客户端,互相通信
- linux下socket编程实现一个服务器连接多个客户端
- java网络编程----------Socket实现客户端和服务器的连接
- socket的accept函数解析以及服务器和多个客户端的端口问题
- socket的accept函数解析以及服务器和多个客户端的端口问题
- java使用socket网络编程实现qq互聊,一个服务器和多个客户端
- 服务器和客户端的socket编程
- socket编程客户端和服务器
- Windows API了解用户是否在使用鼠标或键盘
- mysql字符集的设置 utf8和utf-8以及UTF-8的区别
- jQuery浏览器版本判断
- 左移、右移
- cdc详解
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- 项目收获小总结
- Sublime Text 2 入门及技巧
- windows下php5.4安装(IIS)
- c#发送邮件类
- 雷锋读图:平板电脑或将开启移动办公时代
- 浅析Post和Get
- SQL分页通用存储过程
- 求高手帮忙解答下