欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#-Socket(TCP)

发布时间:2025/6/17 C# 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#-Socket(TCP) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
//提示,线程里面不要给控件赋值LinkSocket.Send(result, length, 0);自己挂起 private void button1_Click(object sender, EventArgs e){bool ok = guaqi(IPAddress.Parse(rip.Text) ,int.Parse (rpont .Text ));if (ok){richTextBox1.Text = "挂起成功!";jiantingkehuduan();//监听}else richTextBox1.Text = "挂起失败"; }连接别人 private void button2_Click(object sender, EventArgs e) {bool ok = Link (IPAddress.Parse(rip.Text), int.Parse(rpont.Text));if (ok){richTextBox1.Text = "连接成功!";clientSocket.Send(Encoding.UTF8.GetBytes("aaaaa"));}else richTextBox1.Text = "连接失败"; } //CS************************************************//定义public int Pont;//端口public IPAddress Ip;//ippublic Socket MySocket;//定义一个套接字//挂起socket public bool guaqi(IPAddress ip, int pont) {try //挂起socket,可以根据这个地方try一下判断启动服务器是否成功{Pont = pont;Ip = ip;MySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);MySocket.Bind(new IPEndPoint(Ip, Pont));MySocket.Listen(30);//最多监听30个return true;//挂起成功}catch{return false;//挂起失败} }//监听客户端 public void jiantingkehuduan() {Thread myThread = new Thread(listen);myThread.IsBackground = true;myThread.Start(); } //监听函数 public void listen() {while (true){Socket now = MySocket.Accept();//监听到的这个赋值在p1ser..上//每接收到一个连接就给他开一个单独的send便于交流Thread tt = new Thread(send);//send是接收并发送消息tt.IsBackground = true;tt.Start(now);//建立一个和p1一起的发送接受线程} }//send//接收和发送消息 public void send(object clientSocket) {Socket nowsocket = (Socket)clientSocket;byte[] result = new byte[1024];while (true)//一直和p1保持联系{try //可以try一下,catch的时候就是对方下线或者故障了 {//接收******************int len = nowsocket.Receive(result);//接收消息,并且存在result里string tmp = Encoding.UTF8.GetString(result, 0, len);//可以用if(tmp=="")来判断干什么 //发送**************//nowsocket.Send(Encoding.UTF8.GetBytes("aaaaa"));}catch{return; //连接断开}} }//连接 Socket clientSocket; public bool Link(IPAddress ip, int pont) {clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);try{clientSocket.Connect(new IPEndPoint(ip, pont));//int len = clientSocket.Receive(result);//string tmp = Encoding.UTF8.GetString(result, 0, len);return true;}catch{return false;} }
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的C#-Socket(TCP)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。