📄 t-hello.htm
字号:
<html><head><meta http-equiv="Content-Language" content="en-us"><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>UDT Reference</title></head><body><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="table1" bgcolor="#99CCFF" bordercolor="#99CCFF"> <tr> <td width="100%"><font face="Verdana" size="2"><i> UDT </i></font><i> <font face="Verdana" size="2">Tutorial</font></i></td> </tr></table><h1><font face="Verdana" size="4">Hello World!</font></h1><p><font face="Verdana" size="2">In this section we will introduce the simplest UDT program that can transfer data in high performance.</font></p><p><font face="Verdana" size="2">This simple "Hello World!" example includes a server program and a client program just like any socket programming tutorial. These are the simpler version of the <font color="#000080">appserver</font> and<font color="#000080">appclient</font> examples in <i>./app</i> directory. </font></p><p><font face="Verdana" size="2">To compile, use <font color="#800000">gcc -o server server.cpp -I<udt.h location> -L<libudt.so location> -ludt -lstdc++ -lpthread</font>. For more details, please refer to the <font color="#000080">Makefile</font> in .<i>/app</i> directory.</font></p><p><b><font face="Verdana" size="2">UDT server example</font></b></p><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="table2" bgcolor="#C0C0C0" bordercolor="#C0C0C0"> <tr> <td width="100%"> <p style="margin-top: 0; margin-bottom: 0"> <font face="Courier New" size="1">#include <iostream><br> #include <udt.h><br> #include <arpa/inet.h><br> <br> using namespace std;<br> <br> using namespace UDT;<br> <br> int main()<br> {<br> UDTSOCKET serv = UDT::socket(AF_INET, SOCK_STREAM, 0);<br> <br> sockaddr_in my_addr;<br> my_addr.sin_family = AF_INET;<br> my_addr.sin_port = htons(9000);<br> my_addr.sin_addr.s_addr = INADDR_ANY;<br> memset(&(my_addr.sin_zero), '\0', 8);<br> <br> if (UDT::ERROR == UDT::bind(serv, (sockaddr*)&my_addr, sizeof(my_addr)))<br> {<br> cout << "bind: " << UDT::getlasterror().getErrorMessage();<br> return 0;<br> }<br> <br> CUDT::listen(serv, 10);<br> <br> int namelen;<br> sockaddr_in their_addr;<br> <br> UDTSOCKET recver = UDT::accept(serv, (sockaddr*)&their_addr, &namelen);<br> <br> char ip[16];<br> cout << "new connection: " << inet_ntoa(their_addr.sin_addr) << ":" << ntohs(their_addr.sin_port) << endl;<br> <br> char data[100];<br> <br> if (UDT::ERROR == UDT::recv(recver, data, 100, 0))<br> {<br> cout << "recv:" << UDT::getlasterror().getErrorMessage() << endl;<br> return 0;<br> }<br> <br> cout << data << endl;<br> <br> CUDT::close(recver);<br> CUDT::close(serv);<br> <br> return 1;<br> }</font></td> </tr></table><p><font face="Verdana" size="2">This simple server tries to bind itself at port 9000. If succeed, it listens at port 9000 and accepts a client and then reads a string.</font></p><p style="margin-top: 0; margin-bottom: 0"><b><font face="Verdana" size="2">UDT client example</font></b></p><p style="margin-top: 0; margin-bottom: 0"> </p><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="table3" bgcolor="#C0C0C0" bordercolor="#C0C0C0"> <tr> <td width="100%"> <p style="margin-top: 0; margin-bottom: 0"> <font face="Courier New" size="1">#include <iostream><br> #include <udt.h><br> #include <arpa/inet.h><br> <br> using namespace std;<br> using namespace UDT;<br> <br> int main()<br> {<br> UDTSOCKET client = UDT::socket(AF_INET, SOCK_STREAM, 0);<br> <br> sockaddr_in serv_addr;<br> serv_addr.sin_family = AF_INET;<br> serv_addr.sin_port = htons(9000);<br> inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr);<br> <br> memset(&(serv_addr.sin_zero), '\0', 8);<br> <br> // connect to the server, implict bind<br> if (UDT::ERROR == UDT::connect(client, (sockaddr*)&serv_addr, sizeof(serv_addr)))<br> {<br> cout << "connect: " << UDT::getlasterror().getErrorMessage();<br> return 0;<br> }<br> <br> char* hello = "hello world!\n";<br> if (UDT::ERROR == UDT::send(client, hello, strlen(hello) + 1, 0))<br> {<br> cout << "send: " << UDT::getlasterror().getErrorMessage();<br> return 0;<br> }<br> <br> UDT::close(client);<br> <br> return 1;<br> }</font></td> </tr></table><p><font face="Verdana" size="2">The client side connects to the local address (127.0.0.1) at port 9000, and sends a "hello world!" message.</font></p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -