摘 要:介紹了如何創(chuàng)建套接字,如何連接套接字以及如何共享數(shù)據(jù),以便進(jìn)行socket通信,主要是用Ruby編程語言進(jìn)行創(chuàng)建的,而且并不是僅僅要是Ruby所提供的套接字API的包裝類(wrap class),而是先講解低層次的API。然后再介紹Ruby的包裝類,使你對(duì)套接字的理解不僅僅局限在Ruby。
關(guān)鍵詞:服務(wù)器;循環(huán);代碼
第一章:主要功能實(shí)現(xiàn)
1.服務(wù)器的生命周期
①創(chuàng)建;②綁定;③偵聽;④接受;⑤關(guān)閉。
2.服務(wù)器綁定
Require’socket’;Socket=Socket.new(:INET,:STREAM):Addr=Socket.pack_sockaddr_in(4481,’0.0.0.0’);Socket.bind(addr)
3.服務(wù)器偵聽隊(duì)列
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循環(huán)
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.具體代碼實(shí)現(xiàn)
(1)服務(wù)器端代碼
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
實(shí)現(xiàn)將字符將你在客戶端輸入的字符發(fā)送到服務(wù)器端。
其他章節(jié)(略)
參考文獻(xiàn):
門佳.TCP Sockets編程.人民郵電出版社,2013-06.
作者簡(jiǎn)介:洪永新,1992年2月出生,本科,就讀于福建省泉州市泉州師范軟件學(xué)院,軟件工程。