0
我想通過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 2009-09-02 08:17:28
我已經更新了關於線程池的信息。如果您發現新增加的信息有用,請將其標記爲答案。 – 2009-09-03 14:29:07