///客户端的代码
//  //得到ip;        IPAddress ip = IPAddress.Parse("127.0.0.1");
        IPEndPoint hostep = new IPEndPoint(ip, 6617);
        Socket stocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        stocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
        TcpListener listener = new TcpListener(ip, 6617);
        listener.Start();
        TcpClient clientsocket = new TcpClient("127.0.0.1", 6617);
        stocket.Connect(hostep);
        byte[] bytes = new byte[1024];
        string sendstr = "hello everybody!我是客户端";
        bytes = Encoding.ASCII.GetBytes(sendstr);
        stocket.Send(bytes,bytes.Length,0);
        string recvstr = "";
        int recvbytes;
        //recvbytes = stocket.Receive(bytes, bytes.Length, 0);
        //recvstr += Encoding.ASCII.GetString(bytes, 0, recvbytes);        this.ListBox1.Items.Add(this.TextBox1.Text.Trim());        stocket.Shutdown(SocketShutdown.Both);
        stocket.Disconnect(false);
        stocket.Close();///服务器端的代码        try
        {
            int port = 6617;
            string host = "192.168.1.6";
            IPAddress ip = IPAddress.Parse(host);
            IPEndPoint ipe = new IPEndPoint(ip, port);
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(ipe);
            socket.Listen(0);
            TcpListener listener = new TcpListener(ip, port);            listener.Start();
            TcpClient clientsocket = new TcpClient(host, port);            temp = socket.Accept();            string recvStr = "";
            byte[] recvbytes = new byte[1024];
            int bytes;
            bytes = temp.Receive(recvbytes, recvbytes.Length, 0);
            recvStr += Encoding.ASCII.GetString(recvbytes, 0, 10);
            Response.Write(recvStr);
            // string sendstr = "服务器端";
            // byte[] bs = Encoding.ASCII.GetBytes(sendstr);
            //   temp.Send(bs);//返回客户端成功信息
            temp.Shutdown(SocketShutdown.Receive);
            socket.Shutdown(SocketShutdown.Send);
            temp.Disconnect(false);
            socket.Disconnect(false);
            temp.Close();
            socket.Close();        }
        catch
        {
        }        finally
        {
        }
为什么客户端传过来的值在服务器端得不到,谢谢各位大虾了!

解决方案 »

  1.   

    http://chillyiphone.spaces.live.com/blog/cns!181E9B2001D6AA91!395.entry
    这个你参考一下吧,类似的
      

  2.   

    TcpListener listener = new TcpListener(ip, 6617); 
            listener.Start(); 
            TcpClient clientsocket = new TcpClient("127.0.0.1", 6617); 
            stocket.Connect(hostep); 
    这样子是要干什么嘛啊
      

  3.   

    又是Socket 又是TcpListen,还要TcpClient
    真是乱啊
      

  4.   

    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;public class SynchronousSocketClient {    public static void StartClient() {
            // Data buffer for incoming data.
            byte[] bytes = new byte[1024];        // Connect to a remote device.
            try {
                // Establish the remote endpoint for the socket.
                // This example uses port 11000 on the local computer.
                IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName())
                IPAddress ipAddress = ipHostInfo.AddressList[0];
                IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);            // Create a TCP/IP  socket.
                Socket sender = new Socket(AddressFamily.InterNetwork, 
                    SocketType.Stream, ProtocolType.Tcp );            // Connect the socket to the remote endpoint. Catch any errors.
                try {
                    sender.Connect(remoteEP);                Console.WriteLine("Socket connected to {0}",
                        sender.RemoteEndPoint.ToString());                // Encode the data string into a byte array.
                    byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");                // Send the data through the socket.
                    int bytesSent = sender.Send(msg);                // Receive the response from the remote device.
                    int bytesRec = sender.Receive(bytes);
                    Console.WriteLine("Echoed test = {0}",
                        Encoding.ASCII.GetString(bytes,0,bytesRec));                // Release the socket.
                    sender.Shutdown(SocketShutdown.Both);
                    sender.Close();
                    
                } catch (ArgumentNullException ane) {
                    Console.WriteLine("ArgumentNullException : {0}",ane.ToString());
                } catch (SocketException se) {
                    Console.WriteLine("SocketException : {0}",se.ToString());
                } catch (Exception e) {
                    Console.WriteLine("Unexpected exception : {0}", e.ToString());
                }        } catch (Exception e) {
                Console.WriteLine( e.ToString());
            }
        }
        
        public static int Main(String[] args) {
            StartClient();
            return 0;
        }
    }
      //客户
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;public class SynchronousSocketListener {
        
        // Incoming data from the client.
        public static string data = null;    public static void StartListening() {
            // Data buffer for incoming data.
            byte[] bytes = new Byte[1024];        // Establish the local endpoint for the socket.
            // Dns.GetHostName returns the name of the 
            // host running the application.
            IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
            IPAddress ipAddress = ipHostInfo.AddressList[0];
            IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);        // Create a TCP/IP socket.
            Socket listener = new Socket(AddressFamily.InterNetwork,
                SocketType.Stream, ProtocolType.Tcp );        // Bind the socket to the local endpoint and 
            // listen for incoming connections.
            try {
                listener.Bind(localEndPoint);
                listener.Listen(10);            // Start listening for connections.
                while (true) {
                    Console.WriteLine("Waiting for a connection...");
                    // Program is suspended while waiting for an incoming connection.
                    Socket handler = listener.Accept();
                    data = null;                // An incoming connection needs to be processed.
                    while (true) {
                        bytes = new byte[1024];
                        int bytesRec = handler.Receive(bytes);
                        data += Encoding.ASCII.GetString(bytes,0,bytesRec);
                        if (data.IndexOf("<EOF>") > -1) {
                            break;
                        }
                    }                // Show the data on the console.
                    Console.WriteLine( "Text received : {0}", data);                // Echo the data back to the client.
                    byte[] msg = Encoding.ASCII.GetBytes(data);                handler.Send(msg);
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
                
            } catch (Exception e) {
                Console.WriteLine(e.ToString());
            }        Console.WriteLine("\nPress ENTER to continue...");
            Console.Read();
            
        }    public static int Main(String[] args) {
            StartListening();
            return 0;
        }
    }
    服务端