zoukankan      html  css  js  c++  java
  • socket udp无连接通信

    socket udp无连接通信

     

    参考地址:https://www.cnblogs.com/dj1232090/p/7608215.html 比较完整

    客户端:用到json库

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Socket_Client
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                var obj = new UserModel() { Id = "123", Name = "张三" };
                var json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                socket.SendTo(Encoding.UTF8.GetBytes(json), new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3333));
            }
        }
    
        public class UserModel
        {
            public string Id { get; set; }
    
            public string Name { get; set; }
        }
    }


    服务端:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Socket_Server
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                TextBox.CheckForIllegalCrossThreadCalls = false;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.textBox1.Text = "开始监听....";
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                socket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3333));
                Thread recTh = new Thread(Recive);
                recTh.Start(socket);
            }
    
            private void Recive(object obj)
            {
                byte[] buffer = new byte[1024];
                var socket = obj as Socket;
                while (true)
                {
                    int count = socket.Receive(buffer);
                    var msg = Encoding.UTF8.GetString(buffer, 0, count);
                    this.textBox1.Text = this.textBox1.Text + "
    " + msg;
                }
            }
        }
    }
  • 相关阅读:
    wait 和 notify 方法
    synchronized关键字
    多线程之thread、runnable的区别
    CodeForces 213 E
    hdu 3038 并查集
    zoj 3349 dp + 线段树优化
    hdu 4419 线段树 扫描线 离散化 矩形面积
    hdu 4262(线段树)
    hfut 1287
    hdu 4747 (线段树)
  • 原文地址:https://www.cnblogs.com/zlp520/p/12089241.html
Copyright © 2011-2022 走看看