我只寫了服務端程式。服務端會了,客服端就好寫了。
我的伺服器功能是個小計算器。
server.c
/*socket:實現通訊。客服端輸入表示式經過伺服器計算出結果發給客服端 */
/*伺服器端建立任務:監聽客戶端,收到資料,發給服務端的子程序讓子程式,子程式呼叫execlp
bc命令計算出結果給父程序,父程序傳給伺服器。
*/#include #include #include #include #include #include #include char buf[1024];
int main(void)
else
fd = socket(af_inet, sock_stream, 0);
struct sockaddr_in s_addr,c_addr;
bzero(&s_addr, sizeof(s_addr));
s_addr.sin_family = af_inet;
s_addr.sin_addr.s_addr = htonl(inaddr_any);
// s_addr.sin_port = htons(serv_port);
s_addr.sin_port = htons(8000);
setsockopt(fd, sol_socket, so_reuseaddr,&opt, sizeof(opt));
bind(fd,(struct sockaddr *)&s_addr,sizeof(s_addr));
listen(fd, 20);
while(1)
return 0;
}
重定向分析:
開啟終端執行server。
再開啟乙個終端輸入;telnet localhost 8000
讓telnet充當客服端
結果如下:
bxd:telnet localhost 8000
trying 127.0.0.1...
connected to localhost.
escape character is '^]'.
3+47
connection closed by foreign host.
bxd:
計算出了結果:3+4 = 7;
socket 套接字通訊
要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...
java通訊 套接字Socket
無論用什麼語言開發,socket都是繞不過去的乙個環節,若以簡單論,除了檔案操作,程序間通過socket通訊還是比較方便的。對於主機a和b,若a主機想向b主機傳送資訊,那麼基本步驟如下 1.首先確保b主機上socket服務端開啟,服務端會監聽本機上的乙個埠,例如8080。socket服務端會以阻塞形...
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...