gpt4 book ai didi

c# - 服务器/客户端套接字连接

转载 作者:行者123 更新时间:2023-11-30 16:47:50 25 4
gpt4 key购买 nike

我正在尝试通过套接字连接将数据从客户端发送到服务器。我成功发送了第一个数据,但是当我尝试发送第二个数据时它从未发送,当我尝试发送第三个数据时它给我 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();
}

如果有任何关于套接字的文档,请发表评论。我想读书。

关于c# - 服务器/客户端套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com