关于C#中Socket通信中,服务端如何使用客户端和服务端建立的现有连接(也就是现有socket进行通信)

时间:2022-01-16 14:59:11
我现在就是客户端可以给服务端发信息,但是,不知道怎么给他回信息(前提条件不是建立新的连接)。。。
急需要知道原因啊!!!
快来帮忙啊!

4 个解决方案

#1


人呢!快啊。。。。在公司急用。以前没接触过

#2


你请的回信息是服务器端给客户端回吧,你服务器端监听,接收到数据时,可以重新写一组数据,然后send回去,代码参考如下:
 static void Main(string[] args)
        {
            Socket client;
            int recv;
            //byte[] message = new byte[1024];
            Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            IPAddress adr = IPAddress.Parse("127.0.0.1");
            IPEndPoint ep = new IPEndPoint(adr, 3000);

            ServerSocket.Bind(ep); //类似于客户机的connect()方法
            ServerSocket.Listen(3); //开始监听

            while (true)
            {
                if ((client = ServerSocket.Accept()) != null)
                {
                    Console.WriteLine("连接上...发送数据....");
                    //欲发送的字节数组,以0为结束标记 

                    byte[] message = { 10, 20, 30, 40, 50, 60, 0 };
                    //send方法返回发送的字节数
                    Console.WriteLine("总计将发送" + client.Send(message) + "个字节的数据");
                    Console.WriteLine("结束.");
                    client.Close();
                    break;
                } 

#3


服务器端把那个建立的连接对象保存一下,就可以了啊。就是在serverSocket.Accept()时返回的那个Socket对象保存了,即可。

#4


引用 2 楼 qingxukang 的回复:
你请的回信息是服务器端给客户端回吧,你服务器端监听,接收到数据时,可以重新写一组数据,然后send回去,代码参考如下:
 static void Main(string[] args)
        {
            Socket client;
            int recv;
            //byte[] message = new byte[102……

我自己解决了,谢谢

#1


人呢!快啊。。。。在公司急用。以前没接触过

#2


你请的回信息是服务器端给客户端回吧,你服务器端监听,接收到数据时,可以重新写一组数据,然后send回去,代码参考如下:
 static void Main(string[] args)
        {
            Socket client;
            int recv;
            //byte[] message = new byte[1024];
            Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            IPAddress adr = IPAddress.Parse("127.0.0.1");
            IPEndPoint ep = new IPEndPoint(adr, 3000);

            ServerSocket.Bind(ep); //类似于客户机的connect()方法
            ServerSocket.Listen(3); //开始监听

            while (true)
            {
                if ((client = ServerSocket.Accept()) != null)
                {
                    Console.WriteLine("连接上...发送数据....");
                    //欲发送的字节数组,以0为结束标记 

                    byte[] message = { 10, 20, 30, 40, 50, 60, 0 };
                    //send方法返回发送的字节数
                    Console.WriteLine("总计将发送" + client.Send(message) + "个字节的数据");
                    Console.WriteLine("结束.");
                    client.Close();
                    break;
                } 

#3


服务器端把那个建立的连接对象保存一下,就可以了啊。就是在serverSocket.Accept()时返回的那个Socket对象保存了,即可。

#4


引用 2 楼 qingxukang 的回复:
你请的回信息是服务器端给客户端回吧,你服务器端监听,接收到数据时,可以重新写一组数据,然后send回去,代码参考如下:
 static void Main(string[] args)
        {
            Socket client;
            int recv;
            //byte[] message = new byte[102……

我自己解决了,谢谢