Ruby網路程式設計(1)

2021-08-23 15:32:41 字數 1213 閱讀 7740

關鍵字:[size=xx-large]tcpsocket tcpserver [/size]

這個例子是這樣的:客戶端連上伺服器後,伺服器向客戶端的終端顯示伺服器的時間,然後將來自客戶端的網路連線養關閉。

[img]

my_tcp_server.rb

require 'socket' # get sockets from stdlib

server = tcpserver.open(2000) # socket to listen on port 2000

loop

server.accept這個方法會一直掛著,直到有客戶端連上來為止。

my_tcp_client.rb

require 'socket' # sockets are in standard library

hostname = 'localhost'

port = 2000

s = tcpsocket.open(hostname, port)

while line = s.gets # read lines from the socket

puts line.chop # and print with platform line terminator

end#streamsock.send( "hello\n" )

#str = streamsock.recv( 100 )

#print str

s.close # close the socket when done

然而大多數的伺服器是支援多個客戶端的連線的,在ruby中可以用執行緒來很容易地做到這一點。

我將以上的my_tcp_server.rb中的伺服器**修改一下:

require 'socket' # get sockets from stdlib

server = tcpserver.open(2000) # socket to listen on port 2000

loop

這樣的話,每有乙個客戶端連線上來,就會在伺服器端啟動乙個執行緒來處理請求。

Ruby程式設計筆記1

1 擴充套件名為 rb 執行ruby時輸入ruby helloruby.rb 2 print hello,ruby n 雙引號時會考慮 n這種特殊字元 print hello,ruby n 單引號不會考慮 n t這種特殊字元,只會按照引號內容原本輸出 3 puts方法與print方法不同,顯示的字串...

網路程式設計 1

1.套接字位址結構 套接字程式設計需要指定套接字的位址作為引數,不同的協議族有不同的位址結構定義方式。這些位址結構通常以sockaddr 開頭,每乙個協議族有乙個唯一的字尾,例如對於乙太網,其結構名稱為sockaddr in。1.1 通用套接字位址結構 套接字位址結構 struct sockaddr...

網路程式設計 1

1.前言 公司要為別的公司提供伺服器防護,採用本地環迴,節點 的方法實現對伺服器真實ip進行隱藏。但是有乙個問題 我節點端要建立乙個埠接收對映資料和保活資料,採用固定埠的話,攻擊者很容易通過掃瞄埠來獲取我較多的節點,進行攻擊 2.解決 這裡採用的是通過節點ip來生成乙個隨機埠,客戶端和節點通過這個隨...