2010年2月22日 星期一

Internet Socket

  1. 有修過網路概論,或是計組的人應該對socket不陌生,而我會接觸到這個套件,也是因為工作上的需要.....,主要是能透過分散式的處理程序減少在local端的運算量,把複雜的運算跟大量的Data Base存在Work station上,PC 端就可以藉由Socket 的套件 Access 到我們想要的結果.
  2. 透過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
  3. 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
  4. 我們主要分成兩塊來運行,Server, Host(Client)端. 先Check IP Address,跟所開的Port 是否能通過防火牆. 如果是在自己電腦端對自己電腦端請把IP address 改成 "127.0.0.1" local host
  5. 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 連線
  6. 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";
  7. 執行結果,黃色部分為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

沒有留言:

張貼留言