java通訊 套接字Socket

2021-07-10 08:00:46 字數 1484 閱讀 3447

無論用什麼語言開發,socket都是繞不過去的乙個環節,若以簡單論,除了檔案操作,程序間通過socket通訊還是比較方便的。

對於主機a和b,若a主機想向b主機傳送資訊,那麼基本步驟如下:

1. 首先確保b主機上socket服務端開啟,服務端會監聽本機上的乙個埠,例如8080。socket服務端會以阻塞形式啟動,直到有客戶端連線該埠。

2.主機a需事先知道主機b的ip位址(假設為192.168.1.2),以及服務端監聽的埠號,然後建立乙個指向192.168.1.2:8080的連線,此時若主機a和b無其他外部條件影響,則socket已完成。

3. 主機b上的服務端在監聽到本機的8080埠被連線後,阻塞就停止了,會按照設計向下執行命令。

對於服務端serversocket和客戶端socket來說,都可以通過get***的方式獲取套接字的輸入流和輸出流。資料以流的形式進行傳送時,客戶端可能連續傳送了很多次資料,而服務端會一次性將所有資料讀取完畢,因此若資訊要求分開傳送,則最好約定分隔符。

void openserversocket(final

int port)

log.d(name+":"+str+"\n");

//將獲取到的字串發給客戶端,讓客戶端可以判斷服務端是否成功接收到了資料。

bufferedwriter writer=new bufferedwriter(new outputstreamwriter(client.getoutputstream()));

writer.write(str);

writer.flush();

client.close();

}} catch (exception e)

}}).start();

}

**很簡單,主要過程就是:監聽埠port,如果有客戶端連線,那麼accept方法就會停止阻塞,服務端會讀取從客戶端發來的資料,然後將該資料再次傳送給客戶端。

void openclientsocket(final string information,final string serversocketname,final

int port)

//去除回車等符號的影響

if(str.replace("\n", "").equals(information.replace("\n", "")))else

client.close();

}catch (exception e1)

}}).start();

}

服務端與客戶端**都很簡單,因此不要以為程序間通訊很難,都是已經封裝好的內容,直接使用就可以了,利用此功能可以自己寫聊天室等等。

replace和replaceall的區別

socket工作原理

c語言實現socket通訊

socket 套接字通訊

要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...

利用Socket套接字通訊

我只寫了服務端程式。服務端會了,客服端就好寫了。我的伺服器功能是個小計算器。server.c socket 實現通訊。客服端輸入表示式經過伺服器計算出結果發給客服端 伺服器端建立任務 監聽客戶端,收到資料,發給服務端的子程序讓子程式,子程式呼叫execlp bc命令計算出結果給父程序,父程序傳給伺服...

Socket實現套接字通訊

套接字工作流程 import socket 1 買手機 phone socket.socket 2 繫結手機卡 phone.bind 127.0.0.1 8080 3 開機 phone.listen 5 4 等 連線 conn,addr phone.accept 5 收發訊息 data conn.r...