摘 要:介紹了如何創建套接字,如何連接套接字以及如何共享數據,以便進行socket通信,主要是用Ruby編程語言進行創建的,而且并不是僅僅要是Ruby所提供的套接字API的包裝類(wrap class),而是先講解低層次的API。然后再介紹Ruby的包裝類,使你對套接字的理解不僅僅局限在Ruby。
關鍵詞:服務器;循環;代碼
第一章:主要功能實現
1.服務器的生命周期
①創建;②綁定;③偵聽;④接受;⑤關閉。
2.服務器綁定
Require’socket’;Socket=Socket.new(:INET,:STREAM):Addr=Socket.pack_sockaddr_in(4481,’0.0.0.0’);Socket.bind(addr)
3.服務器偵聽隊列
Require’socket’;Socket=Socket.new(:INET,:STREAM);addr=Socket.pack_sockaddr_in(4481,‘0.0.0.0’);Socket.bind(addr);Socket.listen(Socket::SOMAXCONN);Connection,_=server.accept
4.Accept循環
Require’socket’;Socket=Socket.new(:INET,:STREAM);addr=Socket.pack_sockaddr_in(4481,0.0.0.0’):Socket.bind(addr);Socket.listen(Socket::SOMAXCONN);Loop do;connection,_=server.accept;connection.close;end
5.具體代碼實現
(1)服務器端代碼
require 'socket'
one_kb=1024;Socket.tcp_server_loop(4481)do |connection|
while data=connection.read(one_kb)do;puts data;end;end
(2)客戶端代碼
require'socket';client=TCPSocket.new('localhost',4481);@s=gets.chomp;
client.write(@s);Client.close
實現將字符將你在客戶端輸入的字符發送到服務器端。
其他章節(略)
參考文獻:
門佳.TCP Sockets編程.人民郵電出版社,2013-06.
作者簡介:洪永新,1992年2月出生,本科,就讀于福建省泉州市泉州師范軟件學院,軟件工程。