C#可以给指定ip和端口号的地址发送信息么??100分+40分链接?
40分传送门?
http://topic.csdn.net/u/20100630/16/975eefc4-6543-49a2-a5df-9c44a4419201.html

解决方案 »

  1.   

    那不就是tcp链接吗?很容易的啊
      

  2.   

    http://hi.baidu.com/wenzhezhang/blog/item/8a555526bb1ae8138b82a18d.html/cmtid/7ffcedf386dde25d342acc01
    请参考
      

  3.   

     Send方:
    NetworkStream ns = tc.GetStream();
                    byte[] bytes = ..;
                    ns.Write(bytes, 0, bytes.Length);//发送接收监听方返回
    while(true)

                        if (ns.DataAvailable)
                        {
                            byte[] rbytes ..;ns.Read(rbytes, 0, ..);
                        }
                    }
    监听方:
    Socket _s;
    _s.Receive接收
    _s.Send发送
      

  4.   

    当然可以啊!!发一个简单的: /// <summary>
            /// 客户端
            /// </summary>
            private void ClientMethod()
            {
                try
                {
                    int port = 3000;
                    string host = "127.0.0.1";
                    /**/
                    ///创建终结点EndPoint
                    IPAddress ip = IPAddress.Parse(host);
                    //IPAddress ipp = new IPAddress("127.0.0.1");
                    IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndpoint实例
                    /**/
                    ///创建socket并连接到服务器
                    Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建Socket
                    Console.WriteLine("Conneting…");
                    c.Connect(ipe);//连接到服务器
                    /**/
                    ///向服务器发送信息
                    string sendStr = txtMessage.Text.Trim();
                    byte[] bs = Encoding.ASCII.GetBytes(sendStr);//把字符串编码为字节
                    Console.WriteLine("发送消息");
                    c.Send(bs, bs.Length, 0);//发送信息
                    /**/
                    ///接受从服务器返回的信息
                    string recvStr = "";
                    byte[] recvBytes = new byte[1024];
                    int bytes;
                    bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
                    recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
                    lsbInfo.Items.Add(string.Format("客户得到的信息:{0}", recvStr));//显示服务器返回信息
                    /**/
                    ///一定记着用完socket后要关闭
                    c.Close();
                }
                catch (ArgumentNullException xe)
                {
                    Console.WriteLine("argumentNullException: {0}", xe);
                }
                catch (SocketException ez)
                {
                    Console.WriteLine("SocketException:{0}", ez);
                }
                Console.WriteLine("按Enter退出");
                Console.ReadLine();
            }  /// <summary>
            /// 服务器端
            /// </summary>
            private void ServerMethod()
            {
                int port = 3000;
                string host = "127.0.0.1";
                /**/
                ///创建终结点(EndPoint)
                IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例
                IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例
                /**/
                ///创建socket并开始监听
                Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字
                s.Bind(ipe);//绑定EndPoint对像(2000端口和ip地址)
                s.Listen(0);//开始监听
                lsb.Items.Add("等待客户端连接");
                /**/
                ///接受到client连接,为此连接建立新的socket,并接受信息
                Socket temp = s.Accept();//为新建连接创建新的socket
                lblMessage.Text = "连接成功。";
                string recvStr = "";
                byte[] recvBytes = new byte[1024];
                int bytes;
                bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
                recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
                /**/
                ///给client端返回信息
                lsb.Items.Add(string.Format("server get message:{0}", recvStr));//把客户端传来的信息显示出来
                string sendStr = "ok!Client send message successful!";
                byte[] bs = Encoding.ASCII.GetBytes(sendStr);
                temp.Send(bs, bs.Length, 0);//返回信息给客户端
                temp.Close();
                s.Close();
                Console.ReadLine();
            }
      

  5.   

    Socket编程,只需调用两个方法就可以了
      

  6.   

    如果用tcpClient来还简单一些!!!
      

  7.   

    哇 ~~~~好多啊。。http://hi.baidu.com/wenzhezhang/blog/item/8a555526bb1ae8138b82a18d.html/cmtid/7ffcedf386dde25d342acc01
      

  8.   

    tcp 、 socket都可以实现