通信するTCPIPサーバーとクライアントアプリケーションを作成し、ランダムファイルを送信する必要があります。これまでのところ、私はこれを作った:TCPIPサーバー/クリエートアプリケーションの通信を修正する方法
サーバー:
static void Main(string[] args)
{
IPAddress localIP = IPAddress.Parse("127.0.0.1");
TcpListener tcpServerListener = new TcpListener(localIP, 1234);
tcpServerListener.Start();
Console.WriteLine("Service started...");
while (true)
{
var serverSocket = tcpServerListener.AcceptTcpClient();
Console.WriteLine("Request accepted!");
if (serverSocket.Connected)
{
Do(serverSocket);
}
Console.WriteLine("Waiting for new request...");
Console.ReadLine();
}
}
private static void Do(TcpClient serverSocket)
{
var serverSockStream = serverSocket.GetStream();
var reader = new StreamReader(serverSockStream);
var poruka = reader.ReadLine();
var odgovor = "Hello " + poruka;
var writer = new StreamWriter(serverSockStream);
writer.Flush();
reader.Close();
writer.Close();
}
クライアント:
static void Main(string[] args)
{
TcpClient tcpClient = new TcpClient("127.0.0.1", 1234);
NetworkStream clientSockStream = tcpClient.GetStream();
var writer = new StreamWriter(clientSockStream);
writer.WriteLine("TCP/IP Client");
writer.Flush();
var reader = new StreamReader(clientSockStream);
var odgovor = reader.ReadLine();
Console.WriteLine("Answer received: " + odgovor);
writer.Close();
reader.Close();
}
私が直面しています問題は、私はコミュニケーション、第二応答がクラッシュ達成後:
を各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の1つの使用が通常許可されます
このエラーを修正して後でファイルを送信する方法を教えてください。 (後でシリアライズなど)
ポート枯渇についての記事があります。それがBizTalkの記事であるという事実に惑わされてはいけません。問題を診断するためのクールな情報があります:https://msdn.microsoft.com/en-us/library/aa560610(v=bts.20) .aspx – mnemonic
サーバーを何度も起動しようとしていませんか?クライアントとは異なり、それは終了しません(そして、 'Console.ReadLine'はあなたがEnterを押すまで別のクライアントを受け取らないようにします。いずれにしても、TCPは正しく取得するのが非常に難しいです。すでに動作しているものを使用したくないのですか?はいの場合は、まずTCPが動作する方法を学び、実際にどのような問題が発生しているか、さまざまな状態やエラーシナリオをすべて処理する方法を学びます。 – Luaan
コミュニケーションの問題を解決したので、あなたはあなたの答えに正しいとフラグを立てるために別に答えられますか?ありがとう。 @Luaan –