首页 / C# / c#Socket通信基本使用
c#Socket通信基本使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#Socket通信基本使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2391字,纯文字阅读大概需要4分钟。
内容图文
![c#Socket通信基本使用](/upload/InfoBanner/zyjiaocheng/832/8ffc76ba9cc44265891d0e30497b3efe.jpg)
基本流程
Server
private void button1_Click(object sender, EventArgs e) { try { Socket Jt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Any; IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(textBoxport.Text)); Jt.Bind(point); ShowMsg("Listening to success"); Jt.Listen(10); Thread t = new Thread(Listen); t.IsBackground = true; t.Start(Jt); } catch { } } void ShowMsg(string s) { textBox3.AppendText(s + "\r\n"); } Socket Tx; Dictionary<string, Socket> dic = new Dictionary<string, Socket>(); void Listen(object o) { try { while (true) { Socket Jt = o as Socket; Tx = Jt.Accept(); dic.Add(Tx.RemoteEndPoint.ToString(), Tx); comboBox1.Items.Add(Tx.RemoteEndPoint.ToString()); ShowMsg(Tx.RemoteEndPoint.ToString() + ":" + "Connection successful"); Thread t = new Thread(Receive); t.IsBackground = true; t.Start(Tx); } } catch { } } void Receive(object o) { try { Tx = o as Socket; while (true) { byte[] buffer = new byte[1024 * 1024 * 3]; int n = Tx.Receive(buffer); if (n == 0) { break; } string s = Encoding.UTF8.GetString(buffer, 0, n); ShowMsg(Tx.RemoteEndPoint.ToString() + ":" + s); } } catch { } } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } private void button2_Click(object sender, EventArgs e) { try { string s = textBox4.Text; byte[] buffer = Encoding.UTF8.GetBytes(s); //Tx.Send(buffer); string ss = comboBox1.SelectedItem.ToString(); dic[ss].Send(buffer); textBox4.Clear(); } catch { } }
Client
Socket Tx; private void button1_Click(object sender, EventArgs e) { try { Tx = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse(textBoxip.Text); IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(textBoxport.Text)); Tx.Connect(point); ShowMsg("Connection successful"); } catch { } } void ShowMsg(string s) { textBox3.AppendText(s + "\r\n"); } private void button2_Click(object sender, EventArgs e) { try { string s = textBox4.Text; byte[] buffer = Encoding.UTF8.GetBytes(s); Tx.Send(buffer); textBox4.Clear(); Thread t = new Thread(Receive); t.IsBackground = true; t.Start(); } catch { } } void Receive() { try { while (true) { byte[] buffer = new byte[1024 * 1024 * 3]; int n = Tx.Receive(buffer); if (n == 0) { break; } string s = Encoding.UTF8.GetString(buffer, 0, n); ShowMsg(Tx.RemoteEndPoint.ToString() + ":" + s); } } catch { } } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; }
内容总结
以上是互联网集市为您收集整理的c#Socket通信基本使用全部内容,希望文章能够帮你解决c#Socket通信基本使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。