如何识别客户端是否正在使用VS2010中的C#向服务器发送文件
本文关键字:中的 VS2010 服务器 文件 何识别 识别 是否 客户端 | 更新日期: 2023-09-27 18:24:05
我有一个在VS2010中使用C#的服务器客户端程序,其中客户端向服务器发送一个文件,服务器用另一个文件响应客户端。我想要的是让我的服务器继续运行,因为我正在使用功能
IPAddress[] ipAddress = Dns.GetHostAddresses("MRD044");
for (int i = 0; i < ipAddress.Length; i++)
{
if (ipAddress[i].AddressFamily == AddressFamily.InterNetwork)
{
ipEnd = new IPEndPoint(ipAddress[i], 5656);
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
sock.Bind(ipEnd);
}
}
curMsg = "Starting...";
Console.WriteLine(curMsg);
sock.Listen(10);
curMsg = "Running and waiting to receive file.";
现在我想运行getFile()函数,它执行服务器端的接收功能,只在客户端向服务器发送文件时运行。类似:
if(clientSendingFile())
{
getFile();
}
else
{}
调用sock.Listen(10)
后,调用Accept方法等待传入连接:
Socket clientsocket = sock.Accept();
那么你的clientsocket实现可能看起来像这样:
// pseudo-code - I might have a missed a C# thing or two...
void getFile()
{
byte [] buffer = new byte[1000];
while (true)
{
int count = -1;
try
{
count = clientsock.Receive(buffer);
// write count bytes into the file - however you are doing that
}
catch(Exception e)
{
// error
count = -1;
break;
}
}