黑马程序员_基于Socket_UDP的聊天小程序

来源:互联网 发布:巨人网络最新股价 编辑:程序博客网 时间:2024/06/05 21:09

 ------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------

今天学习啦黑马的多线程与Socket编程,不过老师只讲了TCP方式的Socket的,聊天工具还是UDP的好哇,我偷个懒,做了一个基于UDP的聊天工具,源码分享给大家,欢迎大家批评指正。


    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            TextBox.CheckForIllegalCrossThreadCalls = false;            //开一个接收数据的线程            Thread threadRecv = new Thread(RecvMsg);            threadRecv.IsBackground = true;            threadRecv.Start();        }        //发送数据        private void btn_send_Click(object sender, EventArgs e)        {            IPAddress ip = IPAddress.Parse(txt_ip.Text.Trim());            IPEndPoint ipto = new IPEndPoint(ip, 6000);            byte[] byMsg = System.Text.Encoding.UTF8.GetBytes(txt_sendmsg.Text.Trim());            Socket sockSend = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);            sockSend.SendTo(byMsg, ipto);        }        //接收数据        void RecvMsg()        {            IPAddress ip = IPAddress.Any;            IPEndPoint listenport = new IPEndPoint(ip, 6000);            //IPEndPoint sender =            EndPoint senderRemote = (EndPoint) new IPEndPoint(ip, 0);            byte[] byMsg = new byte[100];            Socket sockRecv = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);            sockRecv.Bind(listenport);            while (true)            {                int len = sockRecv.ReceiveFrom(byMsg, ref senderRemote);                txt_recvmsg.AppendText(((IPEndPoint)senderRemote).Address.ToString()+ ":"                     +System.Text.Encoding.UTF8.GetString(byMsg,0,len)+"\r\n");            }        }    }



原创粉丝点击