服务器/客户端套接字连接

帕累多利亚

我正在尝试通过套接字连接将数据从客户端发送到服务器。我成功发送了第一个数据,但是当我尝试发送第二个数据却从不发送,而当我尝试发送第三个数据时却给了我Sockets.SocketException如何解决呢?

服务器

byte[] buffer = new byte[1000];


        IPHostEntry iphostInfo = Dns.GetHostEntry(Dns.GetHostName());
        IPAddress ipAddress = iphostInfo.AddressList[0];
        IPEndPoint localEndpoint = new IPEndPoint(ipAddress, 8080);

        Socket sock = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);


        sock.Bind(localEndpoint);
        sock.Listen(5);



        while (true) {
            Socket confd = sock.Accept();

            string data = null;

            int b = confd.Receive(buffer);

            data += Encoding.ASCII.GetString(buffer, 0, b);

            Console.WriteLine("" + data);

            confd.Close();
        }

客户

byte[] data = new byte[10];

        IPHostEntry iphostInfo = Dns.GetHostEntry(Dns.GetHostName());
        IPAddress ipAdress = iphostInfo.AddressList[0];
        IPEndPoint ipEndpoint = new IPEndPoint(ipAdress, 8080);

        Socket client = new Socket(ipAdress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);


        try {

            client.Connect(ipEndpoint);
            Console.WriteLine("Socket created to {0}", client.RemoteEndPoint.ToString());


            while (true) {

                string message = Console.ReadLine();
                byte [] sendmsg = Encoding.ASCII.GetBytes(message);
                int n = client.Send(sendmsg);
            }


        }
        catch (Exception e) {
            Console.WriteLine(e.ToString());
        }

        Console.WriteLine("Transmission end.");
        Console.ReadKey();
帕累多利亚

好的,这是一个愚蠢的错误。这是解决方案,我们应该接受一次套接字。

while (true) {
    Socket confd = sock.Accept();
    string data = null;
    int b = confd.Receive(buffer);
    data += Encoding.ASCII.GetString(buffer, 0, b);
    Console.WriteLine("" + data);
    confd.Close();
}

变成

Socket confd = sock.Accept();
while (true) {
    //Socket confd = sock.Accept();
    string data = null;
    int b = confd.Receive(buffer);
    data += Encoding.ASCII.GetString(buffer, 0, b);
    Console.WriteLine("" + data);
    //confd.Close();
}

如果有关于套接字的任何文档,请对其进行注释。我想读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React客户端套接字未与服务器套接字连接

如何使服务器套接字广播到那里,并让客户端套接字检测并连接

将客户端套接字与服务器套接字连接时出现问题

PHP客户端套接字与C#套接字服务器的连接

客户端在套接字关闭服务器连接之前,客户端打印一半数据

C ++套接字服务器不接受任何客户端/客户端将无法连接

Java TCP 客户端/服务器套接字

客户端js上的套接字服务器?

套接字Java客户端-Python服务器

Java套接字。服务器-客户端通信

套接字编程-简单的客户端/服务器

Java客户端/服务器套接字问题

检查PHP套接字服务器中的断开连接客户端

套接字编程:客户端断开连接可使服务器挂起

套接字连接被拒绝,但是客户端和服务器均独立工作

C服务器套接字拒绝python客户端的连接

客户端未与服务器C连接(套接字编程)

Android客户端PC服务器java套接字连接失败

连接到服务器时客户端套接字超时

在C中运行客户端和服务器套接字连接-带线程

使用标准Web套接字客户端连接到Socket.io服务器

客户端突然断开连接后,如何使服务器套接字保持活动状态?

如何使客户端等待服务器套接字连接?

通过套接字连接将图像从客户端发送到服务器

在远程套接字服务器中作为客户端连接

C ++套接字客户端到python服务器未创建连接

C#TCP套接字服务器客户端连接

当我无权访问服务器时,如何从客户端关闭套接字连接?

将Android客户端连接到NodeJS中的套接字服务器时出错