C# 实现socket通讯程序(客户端)

要实现客户端与服务器的聊天小程序,其实在客户端就只做三件事,连接、发送、接收,下面是最简单例子的部分代码。其他编程语言实现网络编程也基本是一样的。然后写完客户端,就要写服务端的程序了,下一篇博客出门左拐,传送门: 

1、先实例化socket协议,再连接服务器:

关键代码:newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                  newclient.Connect(ie); 

        byte[] data = new byte[1024];
        //实例化 socket 
        newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        string ipadd = serverIP.Text.Trim();                          //读取输入框的ip地址
        int port = Convert.ToInt32(serverPort.Text.Trim());           //读取输入框的端口号
        IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipadd), port); //将ip地址和端口号组成套接字
        try
        {
            newclient.Connect(ie);    //使用socket实例连接 给定的套接字(服务器程序)
            connect.Enabled = false;  //将连接按钮设置为不可用,防止再次连接出现错误
            Connected = true;         //将连接标志设置为已连接
               
        }
        catch(SocketException e)
        {
            MessageBox.Show("连接服务器失败  "+e.Message);
            return;
        }

2、向服务器发送数据:

关键代码:newclient.Send(data);


        //获取字符长度
        int m_length = mymessage.Text.Length;
        byte[] data=new byte[m_length];
        //转为字节流
        data = Encoding.UTF8.GetBytes(mymessage.Text);
        //将字节流发给套接字程序
        int i = newclient.Send(data);
        //将发送的信息显示在发送文本框中
        showMsg("我说:" + mymessage.Text + "\r\n");
        //receiveMsg.AppendText("我说:"+mymessage.Text + "\r\n");
        mymessage.Text = "";
        //newclient.Shutdown(SocketShutdown.Both);

3、接受服务器发来的数据(必须新开线程死循环监听):

关键代码:newclient.Receive(data);

//反复监听服务器发来的信息
while (true)
{
    byte[] data = new byte[1024];
    //从输入的套接字接受信息,存入data数组中,字节流
    int recv = newclient.Receive(data);
    //将字节转换成utf-8的编码字符
    string stringdata = Encoding.UTF8.GetString(data, 0, recv);
    //在富文本框显示服务端发来的信息
    showMsg(stringdata + "\r\n");
    //receiveMsg.AppendText(stringdata + "\r\n");
}

下面给出具体图片吧!

发布了44 篇原创文章 · 获赞 72 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/cj151525/article/details/93061212