gpt4 book ai didi

c# - 指定的参数超出有效值范围。参数名称: size

转载 作者:行者123 更新时间:2023-12-03 11:59:46 25 4
gpt4 key购买 nike

对于任何类型的编程网络,我都是新手。尝试创建简单的套接字服务器程序时,出现以下错误:

Specified argument was out of the range of valid values.
Parameter name: size



这是我的服务器代码:
class Program
{
private static IPAddress localServerIP = IPAddress.Parse("10.114.130.223");
private static TcpListener serverSocket;
private static TcpClient clientSocket;

private static int requestCount = 0;

static void Main(string[] args)
{
serverSocket = new TcpListener(localServerIP, 8888);
clientSocket = default(TcpClient);

serverSocket.Start();
Console.WriteLine(" >> Server Started\n");
clientSocket = serverSocket.AcceptTcpClient();
Console.WriteLine(" >> Accept connection from client");
requestCount = 0;

while (true)
{
try
{
requestCount++;
NetworkStream networkStream = clientSocket.GetStream();
byte[] dataBuffer = new byte[10025];
networkStream.Read(dataBuffer, 0, (int)clientSocket.ReceiveBufferSize);

string dataFromClient = Encoding.ASCII.GetString(dataBuffer);
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));
Console.WriteLine(" >> Data from client - " + dataFromClient);

string serverResponse = "Last Message from client" + dataFromClient;

byte[] sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
networkStream.Flush();
Console.WriteLine(" >> " + serverResponse);

}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

}

}
}

这是我的客户
public partial class Form1 : Form
{

private TcpClient clientSocket;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
msg("Client Started");
clientSocket = new TcpClient();
try
{
clientSocket.Connect(IPAddress.Parse("10.114.130.223"), 8888);
}
catch
{
textBox1.AppendText(" >> Server unavailable\n");
}
statusLabel.Text = "Client Socket Program - Server Connected";
}

private void sendBtn_Click(object sender, EventArgs e)
{
NetworkStream serverStream = clientSocket.GetStream();
byte[] outStream = Encoding.ASCII.GetBytes(textBox2.Text + "$");
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();

byte[] inStream = new byte[10025];
serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
string returnData = Encoding.ASCII.GetString(inStream);
msg(returnData);
textBox2.Text = "";
textBox2.Focus();

}

public void msg(string mesg)
{
textBox1.Text = textBox1.Text + Environment.NewLine + " >> " + mesg;
}
}

任何帮助或指导或解释将不胜感激。

最佳答案

是来自

networkStream.Read(dataBuffer, 0, (int)clientSocket.ReceiveBufferSize);

或来自
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

阅读 NetworkStream.Read Exceptionssubstring exceptions的文档。

关于c# - 指定的参数超出有效值范围。参数名称: size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39925086/

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