tcpip:例子C#开发TCP/IP聊天室

  服务器端原代码:

using;
using.Collections.Generic;
using.ComponentModel;
using.Data;
using.Drawing;
using.Text;
using.Windows.Forms;
using.Net;
using.Threading;
using.Net.Sockets;
Win_Talk
{
  publicpartialForm1:Form
  {
    publicForm1
    {
      InitializeComponent;
    }
    privatevoidForm1_Load(objectsender,EventArgse)
    {
    }
    #region//定义变量
    IPAddressHostIP=IPAddress.Parse("127.0.0.1");
    IPEndPopo;
    Socket;
    boolflag=true;
    SocketacceptedSocket;
    #endregion
    #region//声名委托
    delegatevoidSetTextCallback(text);
    privatevoidSetText(text)
    {
      textBox2.AppendText(text+"rn");
    }
    #endregion
    #region//进程思路方法
    privatevoidProccess
    {
      (acceptedSocket.Connected)
      {
        while(flag)
        {
          receiveByte=[64];
          acceptedSocket.Receive(receiveByte,receiveByte.Length,0);
          strInfo=Encoding.BigEndianUnicode.GetString(receiveByte);
          this.Invoke(SetTextCallback(SetText),object{strInfo});
        }
      }
    }
    #endregion
    privatevoidbutton3_Click(objectsender,EventArgse)
    {
      try
      {
        .Close;
        acceptedSocket.Close;
      }
      catch
      {
      }
      finally
      {
        Close;
      }
    }
    privatevoidbutton2_Click_1(objectsender,EventArgse)
    {
      try
      {
        BytesendByte=Byte[64];
        sendStr=this.textBox1.Text+":"+this.textBox3.Text+"rn";
        sendByte=Encoding.BigEndianUnicode.GetBytes(sendStr.ToCharArray);
        acceptedSocket.Send(sendByte,sendByte.Length,0);
      }
      catch{}
    }
    privatevoidbutton1_Click_1(objectsender,EventArgse)
    {
      HostIP=IPAddress.Parse("127.0.0.1");
      try
      {
        po=IPEndPo(HostIP,Int32.Parse("11000"));
        =Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
        .Bind(po);
        .Listen(50);
        acceptedSocket=.Accept;
        Threadthread=Thread(ThreadStart(Proccess));
        thread.Start;
      }
      catch(Exceptioney)
      {
        MessageBox.Show(ey.Message);
      }
    }
  }
}


  客户端代码:

using;
using.Collections.Generic;
using.ComponentModel;
using.Data;
using.Drawing;
using.Text;
using.Windows.Forms;
using.Net;
using.Threading;
using.Net.Sockets;
win_talkClient
{
  publicpartialForm1:Form
  {
    #region//声名变量
    IPAddressHostIP=IPAddress.Parse("127.0.0.1");
    IPEndPopo;
    Socket;
    boolflag=true;
    #endregion
    
   #region//声名委托
    delegatevoidSetTextCallback(text);
    privatevoidSetText(text)
    {
     textBox2.AppendText(text+"rn");
   }
    #endregion
   #region//进程
   privatevoidProccess
    {
      (.Connected)
      {
        while(flag)
        {
          receiveByte=[64];
          .Receive(receiveByte,receiveByte.Length,0);
          strInfo=Encoding.BigEndianUnicode.GetString(receiveByte);
          this.Invoke(SetTextCallback(SetText),object{strInfo});
          
        }
      }
    }
   #endregion
    privatevoidbutton2_Click(objectsender,EventArgse)
    {
      try
      {
        BytesendByte=Byte[64];
        sendStr=this.textBox1.Text+":"+this.textBox3.Text+"rn";
        sendByte=Encoding.BigEndianUnicode.GetBytes(sendStr.ToCharArray);
        .Send(sendByte,sendByte.Length,0);
      }
      catch{}
    }
    
    publicForm1
      {
        InitializeComponent;
      }
    privatevoidForm1_Load(objectsender,EventArgse)
      {
      }
    privatevoidbutton1_Click(objectsender,EventArgse)
      {
        HostIP=IPAddress.Parse("127.0.0.1");
        try
        {
          po=IPEndPo(HostIP,Int32.Parse("11000"));
          =Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
          .Connect(po);
          Threadthread=Thread(ThreadStart(Proccess));
          thread.Start;
        }
        catch(Exceptioney)
        {
          MessageBox.Show("服务器没有开启rn"+ey.Message);
        }
      }
    privatevoidbutton3_Click(objectsender,EventArgse)
    {
      try
      {
        .Close;
      }
      catch
      {
      }
      finally
      {
        Close;
      }
    }
  }
}


Tags:  tcpip.sys tcpip tcpip协议 tcpip

延伸阅读

最新评论

发表评论