【第22期】观点:IT 行业加班,到底有没有价值?

Linux下TCP/IP网络编程——结课考试知识总结

原创 2016年06月01日 15:21:54
  • socket也被认为是文件的一种,因此在网络数据传输过程中自然也可以使用文件I/O的相关函数。

  • 协议就是为了完成数据交换而做的约定。
    PF_INET—-IPv4互联网协议

  • 下列数据适合用那类套接字传输
    • a.演唱会现场直播的多媒体数据(SCOK_DGRAM)
    • b.某人压缩过的文本文件(SCOK_STREAM)
    • c.网上银行用户与银行之间的数据传递(SCOK_STREAM)
  • 端口号就是在同一操作系统内为区分不同的套接字而设置的,由16位构成,可分配的端口号是0~65535,但1~1023时知名端口,一般分配给特定的应用程序。

  • TCP套接字和UDP套接字不会共用端口号,允许重复,但相同的套接字不允许端口重复。

  • 数据传输目标地址同时包含IP地址和端口号。

  • 客户端调用connect函数后,发生以下情况之一才会返回(完成函数的调用)
    • 服务器端接受连接请求
    • 发生断网等异常情况而中断连接请求
  • TCP
    服务器端和客户端函数调用关系

    迭代服务器端的函数调用顺序


  • ceho_client.c
 #include<stdio.h>
 #include<stdlib.h>
 #include<string.h>
 #include<unistd.h>
 #include<arpa/inet.h>
 #define BUF_SIZE 1024
 void error_handling(char *message);
 int main(int argc,char *argv[])
 {
     int sock;
     char message[BUF_SIZE];
     int str_len;
     struct sockaddr_in serv_adr;
     if(argc!=3)
     {
         printf("Usage: %s <IP><PORT>\n",argv[0]);
         exit(1);
     }
     sock = socket(PF_INET,SOCK_STREAM,0);
         if(sock==-1)
             error_handling("socket() error");
     memset(&serv_adr,0,sizeof(serv_adr));
     serv_adr.sin_family = AF_INET;
     serv_adr.sin_addr.s_addr = inet_addr(argv[1]);
     serv_adr.sin_port = htons(argv[2]);

     if(connect(sock),(struct sockaddr*)&serv_adr,sizeof(serv_adr)) == -1)
         error_handling("connect() error!");
     else
         puts("Connected......");
 while(1)
 {
     fputs("Input message(Q to quit):",stdout);
     fgets(message,BUF_SIZE,stdin);

     if(!strcmp(message,"q\n") || !strcmp(message,"Q\n"))
         berak;

     write(sock,message,strlen(message));
     str_len = read(sock,message,BUF_SIZE-1);
     message{str_len} = 0;
     printf("Message from server: %s",message);
 }
     close(sock);
     return 0;
 }

 void error_handling(char *message)
 {
     fputs(message,stderr);
     fputc('\n',stderr);
     exit(1);
 }
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

这些年积累下的URL(从firefox导出)

#bookmarks02.html      It will be read and overwritten.      DO NOT EDIT! --> Bookmarks 书签菜单 ...

java网络编程之TCP/IP ——SocketServer与Socket

[b]java网络编程主要包含4部分:[/b] (注意设置超时时间) 1.URL 连接 :类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。 2.HttpURLConnection连接:相当于servlet,发送单个以post或get方式的请求, 3.TCP/IP连接 可靠传输ServerSocket类 4.UDP连接 DatagramSocket 类, 此类表示用来发送和接收数据报包的套接字。 TCP/IP 连接 Server服务器端 [code
  • zpball
  • zpball
  • 2012-08-08 10:20
  • 1250

Linux下高性能网络编程中的几个TCP/IP选项

转载自: http://blog.chinaunix.net/u/12592/showart.php?id=2064847 最近在新的平台上测试程序,以前一些没有注意到的问题都成为了性能瓶颈,通过设置...

Linux网络编程--7. TCP/IP协议

Linux网络编程--7. TCP/IP协议 <span style="color:

Linux下高性能网络编程中的几个TCP/IP选项

转自:http://blog.chinaunix.net/u/12592/showart.php?id=2064847 最近在新的平台上测试程序,以前一些没有注意到的问题都成为了性能瓶颈,通过设...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)