怎么编写C#的TCP/IP程序

张哈哈嗯呐 2017-02-15 09:48:06
有大神会吗???最好有程序说明~~非常感谢
...全文
357 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonchnn 2017-02-15
  • 打赏
  • 举报
回复
客户端

using System.Net.Sockets;
void send(string data)
{
    Socket _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    //参数: IP地址 , 端口号
    _socket.Connect("192.168.0.101", 1234);
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(body);
    _socket.Send(buffer.ToArray(), buffer.Count, 0);
    //接收对方答复
    MemoryStream ms = new MemoryStream();
    while (_socket.Connected)
    {
        byte[] buffer = new byte[1024];
        int bytesRead = _socket.Receive(buffer, buffer.Length , 0);
        if (bytesRead > 0)
            ms.Write(responseBuffer, 0, bytesRead);
        else
            break;
    }
    // 接收到的数据在ms中 , 做你想做的事
}
服务端

using System.Net.Sockets;

        protected TcpListener _Listener;
        public void Start(int port)
        {
            if (_Listener == null)
                _Listener = new TcpListener(System.Net.IPAddress.Any, port);
            Thread thread1 = new Thread(new ThreadStart(listen));
            thread1.Start();
        }
        protected void listen()
        {
            _Listener.Start();
            while (true)
            {
                TcpClient client = _Listener.AcceptTcpClient();
                ParameterizedThreadStart ParStart = new ParameterizedThreadStart(deal);
                Thread thread2 = new Thread(ParStart);
                thread2.Start(client);
            }
        }
        protected void deal(object client)
        {
                int bufferSize = 1024;
                NetworkStream stream = ((TcpClient)client).GetStream();
                byte[] buffer = new byte[bufferSize];
                int readBytes = 0;
                //将客户端流读入到buffer中
                readBytes = stream.Read(buffer, 0, bufferSize);
                string request = Encoding.UTF8.GetString(buffer);
                if(request == "NIHAO")
                {
                    //做出应答
                    Byte[] Buffer = Encoding.UTF8.GetBytes("NIHAO2");
                    stream.Write(Buffer, 0, Buffer.Length);
                    stream.Flush();
                    stream.Close();
                    ((TcpClient)client).Close();
                }
       }
exception92 2017-02-15
  • 打赏
  • 举报
回复
应该先理解什么是TCP/IP,它有什么优点与缺点。
拜一刀 2017-02-15
  • 打赏
  • 举报
回复
tcpclient tcplistener
X-i-n 2017-02-15
  • 打赏
  • 举报
回复
网上搜 C# socket ,大把大把的代码给你抄
Forty2 2017-02-15
  • 打赏
  • 举报
回复
DotNet对Tcp/IP的支持很好,一个简单的例子可以是: static void Main() { var html = new WebClient().DownloadString("bbs.csdn.net"); Console.WriteLine(html); } 关键是你对Tcp/Ip的理解和对DotNet类库的学习。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧