新聞中心
tcp端口阻塞解決方法?
1、前提要有個外網(wǎng)IP,如果沒有就給運營商打電話,告訴他你要個外網(wǎng)IP,要不然不能下載。

創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為尉氏企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,尉氏網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
3、使用下面解決辦法的時候,要先關(guān)閉系統(tǒng)防火墻(不想關(guān)閉,可以在防火墻添加允許程序)。
5、解決辦法1:去路由器設(shè)置界面,打開upnp。
7、解決辦法2:去路由器設(shè)置界面,設(shè)置端口轉(zhuǎn)發(fā),TCP和UDP,端口22223,指向本機IP。
大家知道,tcp的讀和寫是阻塞的,即讀的時候不知道什么時候讀完,寫的時候不知道什么時候?qū)懲?,因此線程就一直暫停在哪里,一般tcp程序用在上位機下位機之間對吧!下位機一些設(shè)備一般會發(fā)心跳報文給我們機器,假設(shè)為10s發(fā)一次吧,當(dāng)機器超過10s沒接收到數(shù)據(jù),那么我們就要考慮把socket斷開,因為不斷開的話設(shè)備重新連接可能又會建立新的socket,這樣如果設(shè)備反復(fù)斷開連接的話,將產(chǎn)生大量的socket,占用大量系統(tǒng)資源,這里我們用socket.setSoTimeout(500)方法解決read方法的阻塞問題,同時設(shè)定一個標(biāo)志位,在異常處理程序當(dāng)中退出socket連接:
InputStream is = null;
OutputStream os = null;
int flag = 0;
try {
socket.setSoTimeout(500); // 0.5秒就退出read()方法的阻塞
is = socket.getInputStream();
os = socket.getOutputStream();
} catch (Exception e2) {
e2.printStackTrace();
網(wǎng)絡(luò)編程中阻塞和非阻塞socket的區(qū)別?
阻塞:一般的I/O操作可以在新建的流中運用.在服務(wù)器回應(yīng)前它等待客戶端發(fā)送一個空白的行.當(dāng)會話結(jié)束時,服務(wù)器關(guān)閉流和客戶端socket.如果在隊列中沒有請示將會出現(xiàn)什么情況呢?那個方法將會等待一個的到來.這個行為叫阻塞.accept()方法將會阻塞服務(wù)器線程直到一個呼叫到來.當(dāng)5個連接處理完閉之后,服務(wù)器退出.任何的在隊列中的呼叫將會被取消.
非阻塞:非阻塞套接字是指執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時,不管是否執(zhí)行成功,都立即返回。比如調(diào)用recv()函數(shù)讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會一直掛在此函數(shù)調(diào)用上。在實際Windows網(wǎng)絡(luò)通信軟件開發(fā)中,異步非阻塞套接字是用的最多的。平常所說的C/S(客戶端/服務(wù)器)結(jié)構(gòu)的軟件就是異步非阻塞模式的
Socket編程,為什么客戶端無法接收來自服務(wù)器的數(shù)據(jù)?
第一:Socket編程時,永遠不要在關(guān)閉寫(writer)之前關(guān)閉讀(reader) 第二:不管是客戶端還是服務(wù)端在通過Socket讀取數(shù)據(jù)的時候,在你的數(shù)據(jù)傳輸完成后,發(fā)送一個結(jié)束標(biāo)記(比如:end),這樣在你的 while循環(huán)里面判斷一下數(shù)據(jù)是否已經(jīng)傳輸完畢,完畢后跳出循環(huán),否則由于你的程序就會一直阻塞在 readLine()這里,因為你的 socket還沒有斷開,會一直等待你寫數(shù)據(jù)。
到此,以上就是小編對于socket 阻塞 非阻塞的問題就介紹到這了,希望這3點解答對大家有用。
網(wǎng)頁題目:tcp端口阻塞解決方法?socket阻塞windows
路徑分享:http://m.fisionsoft.com.cn/article/cogcecc.html


咨詢
建站咨詢
