TCPプロトコルを介してデバイス[一種のモデム]を接続したいとします。TCPを介してデバイス[モデム]を接続することによって問題が発生する
このデバイスはクライアントと見なすことができます。プログラムの上で をこのデバイスに接続します。プログラムはサーバー上にあり、 には特別なポートがあり、静的IPがあります。
どうすればいいですか?私は、デバイスを接続することはできませんし、私はソケット接続によってハングの問題を解決することはできませんが、
// where ip= 10.0.0.50 and port= 5050, established for the server!
TcpListerner listener;
if listener!= null)
{
listener.Stop();
}
listener= new TcpListener(ip, port);
listener.Start();
Socket socket;
if (!listener.Pending())
{
IAsyncResult ar = listener.BeginAcceptSocket(new AsyncCallback(DoAcceptSocketCallback), socket);
Thread.Sleep(15000); // try to connect in 15 seconds
if (socket != null && socket.Connected)
{
// if socket is connected
// put the code here or do nothing
}
else
{
if (socket != null)
{
socket.Close();
}
if listener!= null)
{
listener.Stop();
listener = null;
}
}
}
public void DoAcceptSocketCallback(IAsyncResult ar)
{
try
{
TcpListener listener = (TcpListener)ar.AsyncState;
if (listener != null)
{
// connected to socket :
socket = listener.EndAcceptSocket(ar);
}
}
catch
{
socket = null;
}
}
:
は、ここに私のコードです。私のフォーム上で何もすることはできませんが、このコードは15秒間接続しようとしています。
ありがとうManish、それは動作します。 – Cmptrb
私はスレッドプールに関する情報で答えを更新しました。あなたが新しい追加情報が役に立つと分かったら、それをチェックしてください。 –