ACE

Size: px
Start display at page:

Download "ACE"

Transcription

1 ACE Socket Allen Long huihoo - Enterprise Open Source

2 内容安排 如何访问 OS 服务 TCP/IP Socket 编程接口 使用 ACE 的 UDP 类进行网络编程 单播 广播 多播

3 Socket Interface 3

4 Socket API 概述 (1/2) Sockets 是网络编程最普遍的接口 Socket API 最初是在 BSD Unix 中开发, 用来为 TCP/IP 协议族提供应用级程序接口 The Socket API 分五类有近 20 多个函数 Socket 通过 Socket API 创建通信端点, 并通过句柄 (handle) 访问 每个 socket 都可以绑定一个本地地址和一个远程地址 In Unix, 对大多数应用来讲, socket 句柄和其他 I/O 句柄 ( 如 : 文件 管道 终端设备句柄 ) 可以互换使用. 而在 windows 中却不可以. 本地管理 :socket 接口为管理本地上下文信息提供以下函数 : socket: 分配最小的未用 socket 句柄 ; bind: 将 socket 句柄与本地或远地地址相关联 ; 本地上下文管理 (Local getsockname context 和 getpeername: 分别确定 socket 所连接的本地或远地地址 ; management) close: 释放 socket 句柄, 使它可用于后面的复用 连接建立和连接终止 :socket 接口为建立和终止连接提供以下函数 : connect: 客户通常使用 connect 来主动地与服务器建立连接 ; 连接建立和终止 (Connection establishment & termination) listen: 服务器使用 listen 来指示它想要被动地侦听进入的客户连接请求 ; accept: 服务器使用 accept 来创建新的通信端点, 以为客户服务 ; shutdown: 有选择地终止一个双向连接的读端和 / 或写端流 4

5 5 Socket API 概述 (2/2) 数据传输机制 :socket 接口提供以下函数来发送和接收数据 : read/write: 通过特定句柄接收和传输数据缓冲区 ; send/recv: 与 read/write 类似, 但它们提供一个额外的参数来控制特定的 socket 特有操作 ( 比如交换 紧急 数据, 或 偷看 接收队列中的数据, 而又不把它从队列中移除 ); 数据传输机制 sendto/recvfrom: 交换无连接数据报 ; readv/writev: 分别支持 分散读 和 集中写 语义 ( 这些操作优化用户 / 内核模式切换并简化内存管理 ); sendmsg/recvmsg: 通用函数, 包含了所有其他数据传输函数的行为 对于 UNIX 域的 socket,sendmsg 和 recvmsg 函数还提供在同一主机的任意进程间传递 访问权限 ( 比如打开文件句柄 ) 的能力 注意这些接口也可被用于其他类型的 I/O, 比如文件和终端 选项 (option) 管理 :socket 接口定义以下函数, 允许用户改变 socket 行为的缺省语义 : setsockopt 和 getsockopt: 修改或查询在协议栈不同层次中的选项 选项包括多点传送 广播, 以及设置 / 获取发送和接收传输缓冲区的大小 ; 选项管理 fcntl 和 ioctl: 是 UNIX 系统调用, 使在 socket 上能够进行异步 I/O 非阻塞 I/O, 以及紧急消息递送 除了上面描述的 socket 函数, 通信软件还可使用以下标准库函数和系统调用 : gethostbyname 和 gethostbyaddr: 处理网络寻址的多种情况, 比如映射主机名到 IP 地址 ; getservbyname: 通过服务的端口号或人类可读的名字来对它们进行标识 ; ntohl ntohs htonl htons: 执行网络字节序转换 ; 网络地址 select: 在成组的打开的句柄上执行基于 I/O 和基于定时器的事件多路分离

6 Linux Socket Server (1/2) #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define MYPORT 8000 #define BACKLOG 10 int main() int sockfd, new_fd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; int sin_size; sockfd = socket(af_inet, SOCK_STREAM, 0); if(sockfd == -1) perror("socket() error!"); exit(1); else printf("socket() is OK...\n"); my_addr.sin_family = AF_INET; my_addr.sin_port = htons(myport); my_addr.sin_addr.s_addr = INADDR_ANY; 6

7 7 Linux Socket Server (2/2) memset(&(my_addr.sin_zero), 0, 8); if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) perror("bind() error lol!"); exit(1); else printf("bind() is OK...\n"); if(listen(sockfd, BACKLOG) == -1) perror("listen() error lol!"); exit(1); else printf("listen() is OK...\n"); sin_size = sizeof(struct sockaddr_in); new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size); if(new_fd == -1) perror("accept() error!"); else printf("accept() is OK...\n"); close(new_fd); close(sockfd); return 0;

8 8 Linux Socket Client #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define DEST_IP " " #define DEST_PORT 8000 int main(int argc, char *argv[ ]) int sockfd; struct sockaddr_in dest_addr; sockfd = socket(af_inet, SOCK_STREAM, 0); if(sockfd == -1) perror("client-socket() error!"); exit(1); else printf("client-socket() sockfd is OK...\n"); dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(dest_port); dest_addr.sin_addr.s_addr = inet_addr(dest_ip); memset(&(dest_addr.sin_zero), 0, 8); if(connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr)) == -1)...

9 9 Windows Socket Server #include <winsock2.h> #include <ws2tcpip.h> #include <stdlib.h> #include <stdio.h> int cdecl main(void) WSADATA wsadata; SOCKET ListenSocket = INVALID_SOCKET, ClientSocket = INVALID_SOCKET; struct addrinfo *result = NULL, hints; char recvbuf[default_buflen]; int iresult, isendresult; int recvbuflen = DEFAULT_BUFLEN; // Initialize Winsock iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= 0) printf("wsastartup failed: %d\n", iresult); return 1;...

10 Windows Socket Client int cdecl main(int argc, char **argv) WSADATA wsadata; SOCKET ConnectSocket = INVALID_SOCKET; struct addrinfo *result = NULL, *ptr = NULL, hints; char *sendbuf = "this is a test"; char recvbuf[default_buflen]; int iresult; int recvbuflen = DEFAULT_BUFLEN; // Validate the parameters if (argc!= 2) printf("usage: %s server-name\n", argv[0]); return 1; // Initialize Winsock iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= 0) printf("wsastartup failed: %d\n", iresult); return 1;... 10

11 11 Windows Socket 例子 cl server.cpp /link "D:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.Lib" cl client.cpp /link "D:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.Lib" 运行 : server.exe client.exe localhost

12 IPC SAP: 进程间通信服务访问点包装 ACE_IPC_SAP ACE_SOCK ACE_TLI ACE_SPIPE ACE_FIFO ACE_SOCK 封装 socket 接口 ACE_TLI 系统 V 传输层接口 ACE_SPIPE SVR4 STREAM 管道 ACE_FIFO UNIX FIFO 除此之外,ACE 还提供对 ATM,DEV,FILE,SSL,UPIPE 的封装

13 ACE Socket 编程接口 增强的类型安全 确保可移植性 简单通用的使用 高层抽象的构件基础 ACE_SOCK_Connector ACE_SOCK_Acceptor ACE_SOCK_Stream ACE_INET_Addr

14 ACE Socket 编程接口 Dgram 类和 Stream 类 :Dgram 类基于 UDP 数据报协议, 提供不可靠的无连接消息传递功能. 另一方面,Stream 类基于 TCP 协议, 提供面向连接的消息传递 Acceptor Connector 类和 Stream 类 :Acceptor 和 Connector 类分别用于被动和主动地建立连接.Acceptor 类封装 BSD accept() 调用, 而 Connector 封装 BSD connect() 调用.Stream 类用于在连接建立之后提供双向的数据流, 并包含有发送和接收方法. 类名 ACE_SOCK_Acceptor 职责 用于被动的连接建立, 基于 BSD accept() 和 listen() 调用 ACE_SOCK_Connector 用于主动的连接建立, 基于 BSD connect() 调用 ACE_SOCK_Dgram ACE_SOCK_IO ACE_SOCK_Stream ACE_SOCK_CODgram ACE_SOCK_Dgram_Mcast ACE_SOCK_Dgram_Bcast 用于提供基于 UDP( 用户数据报协议 ) 的无连接消息传递服务 封装了 sendto() 和 receivefrom() 等调用, 并提供了简单的 send() 和 recv() 接口 用于提供面向连接的消息传递服务 封装了 send() recv() 和 write() 等调用 该类是 ACE_SOCK_Stream 和 ACE_SOCK_CODgram 类的基类 用于提供基于 TCP( 传输控制协议 ) 的面向连接的消息传递服务 派生自 ACE_SOCK_IO, 并提供了更多的包装方法 用于提供有连接数据报 (connected datagram) 抽象 派生自 ACE_SOCK_IO; 它包含的 open() 方法使用 bind() 来绑定到指定的本地地址, 并使用 UDP 连接到远地地址 用于提供基于数据报的多点传送 (multicast) 抽象 包括预订多点传送组, 以及发送和接收消息的方法 用于提供基于数据报的广播 (broadcast) 抽象 包括在子网中向所有接口广播数据报消息的方法

15 TCP/IP Socket 中的角色 (Role) The active connection role (ACE_SOCK_Connector) is played by a peer application that initiates a connection to a remote peer The passive connection role (ACE_SOCK_Acceptor) is played by a peer application that accepts a connection from a remote peer & The communication role (ACE_SOCK_Stream) is played by both peer applications to exchange data after they are connected

16 SOCK SAP 设计原则 - 在编译时强制实现类型安全性 : SOCK SAP 类是强类型的, 非法操作在编译时 而不是运行时被拒绝 ; - 允许受控的类型安全性违例 : 通过提供的 get_handle 和 set_handle 方法 ; - 为常见情况进行简化 : 为常用方法参数提供缺省值 ( 如 : ACE_SOCK_Connector 构造器有六个参数 ). 定义简洁的接口 ( 如 : 使用 ACE_LSOCK* 类来传递 socket 句柄是非常简洁的 ). 将多个操作组合进单一操作 ( 如 : ACE_SOCK_Acceptor 组合了 socket bind 和 listen); - 用层次类属替代一维的接口 : 基类表示类属组件间的相似性, 而派生类表示差异性 ; - 通过参数化类型增强可移植性 : 参数化类型使应用与对特定的网络编程接口的依赖去耦合, 模板提供的类型抽象改善了支持不同网络编程接口 ( 比如 Socket 或 TLI) 的平台间的可移植性 ; - 内联性能关键的方法 : C++ 内联函数的使用以消除运行时函数调用开销 ; - 定义辅助类隐藏易错细节 : Addr 层次消除了与直接使用基于 C 的 struct sockaddr 数据结构族相关联的常见编程错误. 如 : ACE_INET_Addr 的构造器自动将 sockaddr 寻址结构清零, 并将端口号转换为网络字节序. 16

17 SOCK SAP 通信过程 ACE_SOCK 的通信过程一般为如下步骤 : 1 服务器绑定端口, 等待客户端连接 ; 2 客户端通过服务器的 ip 和服务器绑定的端口连接服务器 ; 3 服务器和客户端通过网络建立一条数据通路, 通过这条数据通路进行数据交互. 1. ACE_INET_Addr 类是 ACE_Addr 的子类, 表示 TCP/IP 和 UDP/IP 的地址. 它通常包含机器的 IP 地址和端口号. 定义方法 : ACE_INET_Addr addr(3000," "); 2. ACE_SOCK_Acceptor 类服务期端使用, 用于绑定端口和被动地接受连接. 常用方法 : open() 绑定端口, accept() 建立和客户段的连接 3. ACE_SOCK_Connector 类客户端使用, 用于主动的建立和服务器的连接. 常用方法 : connect() 建立和服务器的连接 4. ACE_SOCK_Stream 类客户端和服务器都使用, 表示客户段和服务器之间的数据通路. 常用方法 : send () 发送数据, recv () 接收数据, close() 关闭连接 ( 实际上就是断开了 socket 连接 ) 17

18 ACE Socket Server #include <ace/inet_addr.h> #include <ace/sock_stream.h> #include <ace/sock_acceptor.h> ACE_INET_Addr port_to_listen(3000, " "); ACE_SOCK_Acceptor acceptor; if (acceptor.open (port_to_listen, 1) == -1) // 绑定端口 cout<<endl<<"bind port fail"<<endl; return -1; // 要绑定的端口号 ACE_SOCK_Stream peer; // 和客户端的数据通路 ACE_Time_Value timeout (10, 0); // if (acceptor.accept (peer)!= -1) // 建立和客户端的连接 cout<<endl<<endl<<"client connect. "<<endl; char buffer[1024]; ssize_t bytes_received; ACE_INET_Addr raddr; peer.get_local_addr(raddr); cout<<endl<<"local port\t"<<raddr.get_host_name()<<"\t"<<raddr.get_port_number()<<endl; // raddr.get_ip_address()? while ((bytes_received = peer.recv (buffer, sizeof(buffer)))!= -1) // 读取客户端发送的数据 peer.send(buffer, bytes_received); // 对客户端发数据 peer.close (); 18

19 19 ACE Socket Client ACE_INET_Addr addr(3000," "); ACE_SOCK_Connector connector; ACE_Time_Value timeout(5,0); ACE_SOCK_Stream peer; if(connector.connect(peer,addr,&timeout)!= 0) cout<<"connection failed!"<<endl; return 1; cout<<"conneced!"<<endl; string s="hello world"; peer.send(s.c_str(),s.length()); // 发送数据 cout<<endl<<"send:\t"<<s<<endl; ssize_t bc=0; // 接收的字节数 char buf[1024]; bc=peer.recv(buf,1024,&timeout); // 接收数据 if(bc>=0) buf[bc]='\0'; cout<<endl<<"rev:\t"<<buf<<endl; // 显示数据 peer.close();

20 ACE Socket Addressing Classes Class Capabilities The ACE_Addr class is the root of the ACE network addressing hierarchy The ACE_INET_Addr class represents TCP/IP & UDP/IP addressing information This class eliminates many subtle sources of accidental complexity

21 使用 ACE_SOCK_Connector #include <ace/inet_addr.h> #include <ace/sock_stream.h> #include <ace/sock_connector.h> #include <ace/time_value.h> ACE_INET_Addr srvr (5000, ACE_LOCALHOST); ACE_SOCK_Connector connector; ACE_SOCK_Stream peer; if(connector.connect(peer,addr,&timeout)!= 0) cout<<"connection failed!"<<endl; return 1; cout<<"conneced!"<<endl;

22 使用 ACE_SOCK_Stream #include <ace/inet_addr.h> #include <ace/sock_stream.h> #include <ace/sock_acceptor.h> #include <ace/time_value.h> unsigned short portnumber = 5000; ACE_INET_Addr myaddress(portnumber); ACE_SOCK_Acceptor acceptor; ACE_SOCK_Stream peer; string s="hello world"; peer.send(s.c_str(),s.length()); // 发送数据 cout<<endl<<"send:\t"<<s<<endl; ssize_t bc=0; // 接收的字节数 char buf[1024]; bc=peer.recv(buf,1024,&timeout); // 接收数据

23 使用 ACE_SOCK_Acceptor #include <ace/inet_addr.h> #include <ace/sock_stream.h> #include <ace/sock_acceptor.h> #include <ace/time_value.h> if (acceptor.accept (peer)!= -1) // 成功建立和客户端的连接 cout<<endl<<endl<<"client connect. "<<endl; char buffer[1024]; ssize_t bytes_received; ACE_INET_Addr raddr; peer.get_local_addr(raddr); cout<<endl<<"local port\t"<<ace_uint32(raddr.get_ip_address()) <<"\t"<<raddr.get_port_number()<<endl; // raddr.get_host.address() while ((bytes_received = peer.recv (buffer, sizeof(buffer)))!= -1) // 读取客户端发送的数据 peer.send(buffer, bytes_received); // 对客户端发数据

24 使用 ACE 的 UDP 类进行网络编程 ACE_SOCK_CODgram ACE_Asynch_Read_Dgram ACE_Asynch_Write_Dgram ACE_SOCK_Dgram 和 TCP 编程相比, UDP 无需通过 acceptor, connector 来建立连接, 故代码相对 TCP 编程来说要简单许多. 另外, 由于 UDP 是一种无连接的通信方式, ACE_SOCK_Dgram 的实例对象中无法保存远端地址信息 ( 保存了本地地址信息 ), 故通信的时候需要加上远端地址信息. UDP 通信过程如下 : 1 服务器端绑定一固定 UDP 端口, 等待接收客户端的通信 ; 2 客户端通过服务器的 IP 和地址信息直接对服务器端发送消息 ; 3 服务器端收到客户端发送的消息后获取客户端的 IP 和端口号, 通过该地址信息和客户端通信.

25 #include <ace/sock_dgram.h> #include <ace/inet_addr.h> #include <ace/time_value.h> #include <string> #include <iostream> using namespace std; UDP Server 例子 int main(int argc, char *argv[]) ACE_INET_Addr port_to_listen(3000); // 要绑定的端口 ACE_SOCK_Dgram peer(port_to_listen); // 通信通道 char buf[100]; while(true) ACE_INET_Addr remoteaddr; // 所连接的远程地址 int bc = peer.recv(buf,100,remoteaddr); // 接收消息, 并获取远程地址信息 if( bc!= -1) string s(buf,bc); cout<<endl<<"rev:\t"<<s<<endl; peer.send(buf,bc,remoteaddr); // 和远程地址通信 return 0; 25

26 26 UDP Client 例子 #include <ace/sock_dgram.h> #include <ace/inet_addr.h> #include <ace/time_value.h> #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) ACE_INET_Addr remoteaddr(3000," "); // 所连接的远程地址 ACE_INET_Addr localaddr; // 本地地址信息 ACE_SOCK_Dgram peer(localaddr); // 通信通道 peer.send("hello",5,remoteaddr); // 发送消息 char buf[100]; int bc = peer.recv(buf,100,remoteaddr); // 接收消息 if( bc!= -1) string s(buf,bc); cout<<endl<<"rev:\t"<<s<<endl; return 0;

27 27 单播 (Unicast) 单播与 TCP 类似, 是一种一对一操作. 与 TCP 通信两点主要的不同 : 你只需要打开使用 ACE_SOCK_Dgram. 不需要使用接受器和连接器. 在发送数据报时, 你需要显式地指定对端的地址.

28 #include "ace/os.h" #include "ace/log_msg.h" #include "ace/inet_addr.h" #include "ace/sock_dgram.h" 使用单播 (Unicast) int send_unicast (const ACE_INET_Addr &to) const char *message = "this is the message!\n"; ACE_INET_Addr my_addr (ACE_static_cast (u_short, 10101)); ACE_SOCK_Dgram udp (my_addr); ssize_t sent = udp.send (message, ACE_OS_String::strlen (message) + 1, to); udp.close (); if (sent == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send")), -1); return 0;

29 29 广播 (Broadcast) 在广播模式中, 你必须为每个发送操作指定目的地址. ACE_SOCK_Dgram_Bcast 类负责为你提供正确的 IP 广播地址. 你只需要指定要用于广播的 UDP 端口号. 因为 ACE_SOCK_Dgram_Bcast 是 ACE_SOCK_Dgram 的子类, 所以全部数据报接收操作与单播的操作都是相似的.

30 使用广播 (Broadcast) #include "ace/os.h" #include "ace/log_msg.h" #include "ace/inet_addr.h" #include "ace/sock_dgram_bcast.h" int send_broadcast (u_short to_port) const char *message = "this is the message!\n"; ACE_INET_Addr my_addr (ACE_static_cast (u_short, 10101)); ACE_SOCK_Dgram_Bcast udp (my_addr); ssize_t sent = udp.send (message, ACE_OS_String::strlen (message) + 1, to_port); udp.close (); if (sent == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send")), -1); return 0;

31 多播 (Multicast) 多播模式涉及到称为多播组的一组网络节点. OS 提供的底层协议软件会使用专门的协议管理多播组. OS 会根据应用是请求加入 ( 订阅 ) 还是离开 ( 取消订阅 ) 特定的多播组来指挥组的操作. 一旦应用加入了某个组, 在已加入的 socket 上发送的所有数据报都会发往该多播组, 而且不用指定每个发送操作的目的地址. 每个多播组都有一个单独的 IP 地址. 多播地址是 D 类 IP 地址. 如 : D 类地址范围 : 到 ACE_SOCK_Dgram_Mcast 也是 ACE_SOCK_Dgram 的子类, 因此 recv() 方法也是从 ACE_SOCK_Dgram 继承来的. 如 : ssize_t recv_cnt = udp.recv(buff, buflen, your_addr);

32 return 0; 使用多播 (Multicast) #include "ace/os.h" #include "ace/log_msg.h" #include "ace/inet_addr.h" #include "ace/sock_dgram_mcast.h" int send_multicast (const ACE_INET_Addr &mcast_addr) const char *message = "this is the message!\n"; ACE_SOCK_Dgram_Mcast udp; if (-1 == udp.join (mcast_addr)) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("join")), -1); ssize_t sent = udp.send (message, ACE_OS_String::strlen (message) + 1); udp.close (); if (sent == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send")), -1);

33 33 其他通信方式 一 Files ACE_FILE_IO ACE_FILE_Connector ACE_FILE_Addr 二 Pipes and FIFOs ACE_FIFO_Recv, ACE_FIFO_Send, ACE_FIFO_Recv_Msg, ACE_FIFO_Send_Msg ACE_Pipe ACE_SPIPE_Acceptor, ACE_SPIPE_Connector, ACE_SPIPE_Stream, ACE_SPIPE_Addr 三 Shared Memory Stream ACE_MEM_Acceptor ACE_MEM_Connector ACE_MEM_Stream ACE_MEM_Addr

34 内容回顾 如何访问 OS 服务 TCP/IP Socket 编程接口 使用 ACE 的 UDP 类进行网络编程 单播 广播 多播

35 参考资料 Patterns & frameworks for concurrent & networked objects ACE & TAO open-source middleware ACE research papers Extended ACE & TAO tutorials UCLA extension, January 21-23, ACE books

36 结束 谢谢大家!

untitled

untitled Lwip Swedish Institute of Computer Science February 20, 2001 Adam Dunkels [email protected] (QQ: 10205001) (QQ: 329147) (QQ:3232253) (QQ:3232253) QQ ARM TCPIP LCD10988210 LWIP TCP/IP LWIP LWIP lwip API lwip

More information

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub VoIP... 2... 2 Abstract... 2... 3... 3 RTP...3 Socket...4...6...7 IP...9 Config Two Voice-hub... 10 1 12 VoIP VoIP voice-hub voice-hub Abstract At the beginning of this paper, we introducted the essential

More information

Slide 1

Slide 1 网络编程入门篇 利用 socket 实现 TCP 服务器 目录 基础知识 具体示例 示例代码讲解 基础知识 基础知识 socket 编程一般采用客户端 - 服务器模式 ( 即由客户进程向服务器进程发出请求, 服务器进程执行请求的任务并将执行结果返回给客户进程的模式 ) 今天我们要讲的就是如何利用 socket 编程实现基于 TCP 协议通信的服务器 首先我们先向大家展示 socket 编程的流程,

More information

Chapter 5- 运输层 (5)-2017

Chapter 5- 运输层 (5)-2017 计算机网络 运输层编程 (5) 陈旺虎 [email protected] Review TCP 协议格式 TCP 可靠传输 为什么需要三次握手? A 发送一次确认的原因 应对出现 已失效的连接请求报文段 的情况, 即防止已失效的连接请求报文段突然又传到了 B 例 1:A 发出连接请求, 但该请求丢失,A 重传连接请求, 到达 B, 则正常 ; 一. 认识 Socket 应用层程序 流套接字接口

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

Microsoft PowerPoint - Socket programming.ppt [相容模式]

Microsoft PowerPoint - Socket programming.ppt [相容模式] Basic Concept of Socket Socket programming 位於傳輸層和應用層之間 socket 是一種可做雙向資料傳輸的通道 讓應用層可以傳送資料給 socket, 或是從 socket 接收資料 Jimmy 2011/3/29 Concept of Socket Relation between Socket and Application Socket 的概念和檔案代碼觀念相似,

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider [email protected] ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

Basics of Socket Programming Please check the referenced links for the further description and examples. 1 Procedures for Socket Implementation 1. Create the server application (e.g. a simple shellscript)

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

Chap04

Chap04 Socket 编程介绍 Socket Socket 网络编程 按照操作系统 Windows 的 socket 编程 *nix 的 socket 编程 按照编程语 言 使 用C++ Java 的 socket 编程 使 用脚本语 言的 socket 编程 Socket 的 一些历史 Sockets 本来是 UNIX 操作系统下流 行行的 一种 网络编程接 口 (API), 在 4.2 BSD 中被 首先引

More information

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2 (2005-01-26) (2005-01-26) (2005-02-27) PIC_SERVER (9) VB TCP/UDP Visual Basic Microsoft Winsock Control (MSWINSCK.OCX) UDP TCP Client Server Visual Basic UDP/TCP PIC_SERVER UDP/TCP 1. Microsoft Winsock

More information

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO Linux muduo C++ ([email protected]) 2012-09-30 C++ TCP C++ x86-64 Linux TCP one loop per thread Linux native muduo C++ IT 5 C++ muduo 2 C++ C++ Primer 4 W. Richard Stevens UNIX Sockets API echo Sockets

More information

嵌入式Linux块设备驱动开发解析

嵌入式Linux块设备驱动开发解析 The success's road 嵌 入 式 LINUX 网 络 驱 动 开 发 Copyright 2007-2008 Farsight. All rights reserved. 要 点 Linux 网 络 设 备 驱 动 程 序 概 述 计 算 机 网 络 概 述 skbuf 数 据 结 构 介 绍 Linux 网 络 设 备 驱 动 程 序 API 介 绍 Linux 网 络 设 备 驱

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

华清远见就业优势倍增项目手册

华清远见就业优势倍增项目手册 Linux 网络编程 曾宏安 1. Internet 与 TCP/IP 协议 1 2 3 4 Internet 历史 OSI 模型与 TCP/IP 协议体系结构 TCP/IP 协议 TCP 和 UDP 协议 Internet 的历史 } Internet- 冷战 的产物 } 1957 年 10 月和 11 月, 前苏联先后有两颗 Sputnik 卫星上天 } 1958 年美国总统艾森豪威尔向美国国会提出建立

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

Slide 1

Slide 1 网络编程入门篇 Select: 非阻塞 Socket 编程 目录 基础知识 具体示例 注意事项 示例代码讲解 基础知识 基础知识 在 RT-Thread 使用 socket 网络编程时, 由于 socket 的 recv 和 send 的实现是阻塞式的, 因此当一个任务调用 recv() 函数接收数据时, 如果 socket 上并没有接收到数据, 这个任务将阻塞在 recv() 函数里 这个时候,

More information

引言 ftp 工作原理 FTP 客户端思考练习 要点回顾 1 ip 地址结构 2 字节顺序转换函数 3 IP 格式转换函数 2 / 29

引言 ftp 工作原理 FTP 客户端思考练习 要点回顾 1 ip 地址结构 2 字节顺序转换函数 3 IP 格式转换函数 2 / 29 引言 ftp 工作原理 FTP 客户端思考练习 网络程序设计 (FTP) 孙永科 西南林业大学 2010 年 9 月 17 日 1 / 29 引言 ftp 工作原理 FTP 客户端思考练习 要点回顾 1 ip 地址结构 2 字节顺序转换函数 3 IP 格式转换函数 2 / 29 引言 ftp 工作原理 FTP 客户端思考练习 本节重点 1 ftp 工作原理数据分析 TCPdump 过程分析 wireshark

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

第一章 概论

第一章  概论 1 2 3 4 5 6 7 8 Linux 7.1 7.1.1 1 1 2 3 2 3 1 2 3 3 1 2 3 7.1.2 1 2 1 2 3 4 5 7.1.3 1 1 2 3 2 7.1 3 7.1.4 1 1 PCB 2 3 2 PCB PCB PCB PCB PCB 4 1 2 PSW 3 CPU CPU 4 PCB PCB CPU PCB PCB PCB PCB PCB PCB PCB

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - os_4.ppt 行 程 資 科 系 林 偉 川 行 程 概 念 行 程 與 程 式 主 要 的 不 同 點 : 程 式 是 被 放 在 外 部 的 儲 存 裝 置 如 磁 碟 上, 而 行 程 則 被 放 在 記 憶 體 中 程 式 在 儲 存 裝 置 中 是 靜 態 的, 而 行 程 在 記 憶 體 中 是 動 態 的, 它 會 隨 著 一 些 事 件 的 發 生 而 產 生 相 對 的 改 變 行 程, 就 是

More information

网络程序设计(socketAPI)

网络程序设计(socketAPI) 前言通信模型重要函数 网络程序设计 (socketapi) 孙永科 西南林业大学 2010 年 9 月 6 日 1 / 40 上节回顾 前言通信模型重要函数上节回顾本章重点 阻塞和非阻塞 socket 通信模型大字节顺序小字节顺序网络字节顺序 2 / 40 本章重点 前言通信模型重要函数上节回顾本章重点 1 通信模型基本概念 Socket 通信 Socket 地址 Socket 函数 2 重要函数获取主机信息

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Microsoft PowerPoint - 数据通信-ch1.ppt

Microsoft PowerPoint - 数据通信-ch1.ppt 主 要 内 容 与 基 本 要 求 主 要 内 容 数 据 通 信 与 计 算 机 网 络 计 算 机 网 络 的 发 展 过 程 分 类 以 及 主 要 性 能 指 标 ; 分 组 交 换 的 基 本 原 理 及 其 与 电 路 交 换 报 文 交 换 的 联 系 与 区 别 ; 计 算 机 网 络 的 协 议 与 体 系 结 构 第 1 章 概 述 基 本 要 求 掌 握 分 组 交 换 电 路

More information

经华名家讲堂

经华名家讲堂 5.1 5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 5.3.1 5.3.2 5.3.3 / 5.3.4 / 5.3.5 / 5.4 Internet 5.4.1 Internet 5.4.2 Intranet 1. 2. 1 31 5 5.1 5.1.1 Internet 1 Host 20 60 IBM 2000 2 20 60 20 60

More information

一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye SkyEye SkyEye http://hpclab.cs.tsinghua.edu.cn/~skyeye/ I hear and I forget, I see and I remember, I do and I understand. SkyEye SkyEye SkyEye SkyEye SkyEye 1. SkyEye PC pervasive computing PC I O PDA

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

Linux网络编程socket错误分析

Linux网络编程socket错误分析 Linux 网 络 编 程 socket 错 误 分 析 socket 错 误 码 : EINTR: 4 阻 塞 的 操 作 被 取 消 阻 塞 的 调 用 打 断 如 设 置 了 发 送 接 收 超 时, 就 会 遇 到 这 种 错 误 只 能 针 对 阻 塞 模 式 的 socket 读, 写 阻 塞 的 socket 时,-1 返 回, 错 误 号 为 INTR 另 外, 如 果 出 现 EINTR

More information

ebook15-10

ebook15-10 1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D

More information

9 Internet 10 Internet

9 Internet 10 Internet 1 2 3 4 5 6 Internet 7 8 9 Internet 10 Internet 11 12 1 1.1 1.2 1.3 1.4 1.5 1.6 1.1 1.1.1 20 50 20 60 ARPANET ARPANET Internet 20 70 ISO International Organization for Standardization TCP/IP 20 90 Internet

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

ebook15-12

ebook15-12 1 2I / O 12.1 I / O V I / O s e l e c tp o l l r e a d vw r i t e v I / Om m a p 14 15 12.2 I / O 1 0. 5 F I F O F I F O i o c t l 14 I / O I / o p e n, r e a dw r i t e I / O (1) o p e n O _ N O N B L

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

Socket Programming in the Banking Collection Service Counter System

Socket Programming in the Banking Collection Service Counter System Socket Programming in the Banking Collection Service Counter System Gang WANG Hubei Radio and TV University, Wuhan, China Email: [email protected] Abstract: This paper describes the use of TCP / IP programming

More information

ebook15-C

ebook15-C C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

untitled

untitled 1....2...2...6 2....10 3. UDP...15 4. TCP...16...16...16 1 1. PC COM1 COM2 COM1 COM2 DTU 2 3 4 COM1 COM1 COM2 COM ID 13900000000 DTU COM1 5 COM2 DTU DTU DTU DTU DTU DTU DTU ID ID 3031 3032 2 ID 13900000001

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 [email protected] C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

Go构建日请求千亿微服务最佳实践的副本

Go构建日请求千亿微服务最佳实践的副本 Go 构建 请求千亿级微服务实践 项超 100+ 700 万 3000 亿 Goroutine & Channel Goroutine Channel Goroutine func gen() chan int { out := make(chan int) go func(){ for i:=0; i

More information

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC 8 TCP/IP TCP/IP TCP OSI 8.1 OSI 4 end to end A B FTP OSI Connection Management handshake Flow Control Error Detection IP Response to User s Request TCP/IP TCP 181 UDP 8.2 TCP/IP OSI OSI 3 OSI 3 8.1 TCP/IP

More information

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在 计 算 机 网 络 ( 第 4 版 ) 课 件 第 1 章 计 算 机 网 络 概 述 郭 庆 北 [email protected] 2009-02-25 第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特

More information

第7章-并行计算.ppt

第7章-并行计算.ppt EFEP90 10CDMP3 CD t 0 t 0 To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox 10t 0 t 0 n p Ts Tp if E(n, p) < 1 p, then T (n) < T (n, p) s p S(n,p) = p : f(x)=sin(cos(x))

More information

Microsoft Word - 实用案例.doc

Microsoft Word - 实用案例.doc 计 算 机 系 统 应 用 2009 年 第 12 期 嵌 入 式 Linux 下 温 湿 度 传 感 器 的 设 计 与 实 现 1 Design and Implementation of Temperature and Humidity Sensor Based on Embedded Linux 陈 博 刘 锦 高 ( 华 东 师 范 大 学 电 子 科 学 技 术 系 上 海 200241)

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co BYOD 228 2015 IT open source DIY ( ) Up/Down HP NNMi WhatsUp Gold Nagios HP SiteScope WhatsUp Gold HP NNMi WhatsUp Gold Cacti MRTG HP ispi Performance for Metrics WhatsUp Gold ( ) Open source Agent End-to-End

More information

Linux網路傳輸設定

Linux網路傳輸設定 Linux 網路傳輸設定 南台科技大學電子系 指導老師 : 侯安桑 班級 : 電子碩研一甲 學號 :M9830205 姓名 : 張嘉巖 Android 網路傳輸設定已經完成後, 接下來要開始設定 linux 網路傳輸, 目標是要將 linux 當作 server 端來設計, 使用的程式語言為 C 語言, 此作法會比 android 來的簡單許多, 只要顧慮程式流程和邏輯觀念是否正確即可, 下面會介紹

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

(HMI) IO A

(HMI) IO A 6.5 6.5 (HMI) IO 6.52 6.52 6.5 2007 113 A 602 100086 010 82616619 010 62638166 www.kingview.com 4 7 25 38 43 52 63 68 86 SQL 95 99 WEB 105 Web Web Web I/O Microsoft Windows XP/NT/2000 I/O PLC PLC PLC PLC

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP # iptables 默认安全规则脚本 一 #nat 路由器 ( 一 ) 允许路由 # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT ( 二 ) DNAT 与端口转发 1 启用 DNAT 转发 # iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 dprot 422 -j DNAT to-destination

More information

4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / /

4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / / 4 AMI AMI AMI SC345604 89 4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / / 91 41-90 41 AMI - AMI - - API MQI MQSeries MQI AMI IBM 91 MQSeries REPOSITORY AMI AMI AMI XML Windows AMI

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

<4D6963726F736F667420506F776572506F696E74202D2030325FC2B2B3F85FA44AAB49B0BBB4FABB50B977A8BEA874B2CEC2B2A4B6BB50C0B3A5CE2E707074>

<4D6963726F736F667420506F776572506F696E74202D2030325FC2B2B3F85FA44AAB49B0BBB4FABB50B977A8BEA874B2CEC2B2A4B6BB50C0B3A5CE2E707074> 入 侵 偵 測 與 預 防 系 統 簡 介 與 應 用 蕭 翔 之 講 師 BS 7799 LA 課 程 大 綱 第 一 章 認 識 入 侵 偵 測 與 預 防 系 統 第 二 章 入 侵 偵 測 與 預 防 系 統 的 功 能 分 類 偵 測 技 術 第 三 章 入 侵 偵 測 與 預 防 系 統 部 署 架 構 第 四 章 入 侵 偵 測 與 預 防 系 統 的 應 用 效 益 第 五 章 結

More information

財金資訊-80期.indd

財金資訊-80期.indd IPv6 / LINE YouTube TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) (node) (address) IPv4 168.95.1.1 IPv4 1981 RFC 791 --IP IPv4 32 2 32 42 IP (Internet Service Provider ISP) IP IP IPv4

More information

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f 27 1 Vol.27 No.1 CEMENTED CARBIDE 2010 2 Feb.2010!"!!!!"!!!!"!" doi:10.3969/j.issn.1003-7292.2010.01.011 OPC 1 1 2 1 (1., 412008; 2., 518052), OPC, WinCC VB,,, OPC ; ;VB ;WinCC Application of OPC Technology

More information