0

クライアントがファイルをサーバーに送信し、サーバーが別のファイルでクライアントに応答する、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
{}
4

1 に答える 1

1

を呼び出した後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;
      }
  }
于 2013-07-22T05:56:26.377 に答える