//tcpClient = new TcpClient(AddressFamily.InterNetwork);//獲得本機的ip地址。
執行時沒有錯誤,但是我不想這裡指定本機ip,我想指定一個固定的伺服器ip,所以講其註釋掉改成:
tcpClient = new TcpClient(host,52888);host為我指定的ip
上面是你理解的有問題。
第一:tcpClient = new TcpClient(AddressFamily.InterNetwork);這句話不是獲得本機的ip地址,而是要建立一個使用ip版本4的定址方案的TcpClient物件。這時只是定義這個物件,並沒有建立連線
第二:tcpClient = new TcpClient(host,52888);這句程式碼的意思是建立一個連線到host和其埠52888的連線,在建立時就已經連線上了。這裡的host指的是你要連線的伺服器IP地址。此時在建立時已經建立連線了,所以在使用BeginConnect非同步呼叫時,丟擲一個【在一個已經建立連線的套接字上做一個連線請求。
注:host是在之前定義過的一個ip地址
這個一個客戶端的部分程式碼,原始碼本來是:
//tcpClient = new TcpClient(AddressFamily.InterNetwork);//獲得本機的ip地址。
執行時沒有錯誤,但是我不想這裡指定本機ip,我想指定一個固定的伺服器ip,所以講其註釋掉改成:
tcpClient = new TcpClient(host,52888);host為我指定的ip
上面是你理解的有問題。
第一:tcpClient = new TcpClient(AddressFamily.InterNetwork);這句話不是獲得本機的ip地址,而是要建立一個使用ip版本4的定址方案的TcpClient物件。這時只是定義這個物件,並沒有建立連線
第二:tcpClient = new TcpClient(host,52888);這句程式碼的意思是建立一個連線到host和其埠52888的連線,在建立時就已經連線上了。這裡的host指的是你要連線的伺服器IP地址。此時在建立時已經建立連線了,所以在使用BeginConnect非同步呼叫時,丟擲一個【在一個已經建立連線的套接字上做一個連線請求。
你理解上面的內容,應該就可以解決你的問題了。