Internet Socket
- 有修過網路概論,或是計組的人應該對socket不陌生,而我會接觸到這個套件,也是因為工作上的需要.....,主要是能透過分散式的處理程序減少在local端的運算量,把複雜的運算跟大量的Data Base存在Work station上,PC 端就可以藉由Socket 的套件 Access 到我們想要的結果.
- 透過GDB Rmote debug幫我們在embedded bord上做Debug跟燒入的動作
http://www.study-area.org/cyril/opentools/opentools/x1265.html
Socket 基礎介紹
Socket 類別針對網路通訊提供一組方法和屬性。 Socket 類別可以讓您使用 ProtocolType 列舉型別中列出的任何通訊協定來執行非同步資料傳送。 目前唯一支援的 ProtocolType 為 TCP 通訊協定。
Ref: http://msdn.microsoft.com/zh-tw/library/system.net.sockets.socket(VS.95).aspx
- Socket的開發套件,目前有很多支援的程式語言,如Java, C, C++, VC, Perl...,這邊用Perl當範例,因為Perl的語法簡單易懂,如此而已.
Java: http://www.cis.nctu.edu.tw/~is82001/NetProg/6/main.html
http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html
C: http://www.scottklement.com/rpg/socktut/introclient.html
perl: http://www.tutorialspoint.com/perl/perl_socket.htm
- 我們主要分成兩塊來運行,Server, Host(Client)端.
先Check IP Address,跟所開的Port 是否能通過防火牆.
如果是在自己電腦端對自己電腦端請把IP address 改成 "127.0.0.1" local host
- sample code for Server
$socket = new IO::Socket::INET (
LocalHost => '127.0.0.1',
LocalPort => '80',
Proto => 'tcp',
Listen => 5,
Reuse => 1
);
die "Coudn't open socket" unless $socket;
//連線到 127.0.0.1 : 80 /TCP傳輸... Listen 5次,重新傳輸1次
$client_socket = $socket->accept();
//確定連線
close $client_socket;
//close 連線
- Sample code for Client
$socket = new IO::Socket::INET (
PeerAddr => '127.0.0.1',
PeerPort => 80,
Proto => 'tcp',
)
or die "Couldn't connect to Server\n";
- 執行結果,黃色部分為Server端,紅色部分為Client端
程式碼下載
Server: http://sites.google.com/site/funningboy/perl_code/tcpserver.pl?attredirects=0&d=1
Client :http://sites.google.com/site/funningboy/perl_code/tcpclient.pl?attredirects=0&d=1
沒有留言:
張貼留言