1. 借助服务器实现小写转大写的程序:

  客户端:发送任意小写字母到服务器端。

  服务器端:接收小写字母,转为大写,回传给客户端,然后客户端显示到屏幕。

  

#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <arpa/inet.h> //结构体struct sockaddr_in的头文件
#include <ctype.h> //toupper()函数头文件 #define SERV_IP "127.0.0.1" //IP地址
#define SERV_PORT 6666 //端口号不能大于65535,1000以下的端口号一般给系统使用,用户使用端口号一般从3000以上 int main(void)
{
int lfd, cfd;
struct sockaddr_in serv_addr, clie_addr;
socklen_t clie_addr_len;
char buf[BUFSIZ];//操作系统内嵌的宏BUFSIZ,指定buf大小
int n, i; lfd = socket(AF_INET, SOCK_STREAM, ); //初始化结构体
serv_addr.sin_family = AF_INET; //ipv4
serv_addr.sin_port = htons(SERV_PORT); //htons端口号转化(本地host转为网络network)
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); //htonl IP地址转化(本地host转为网络network) INADDR_ANY表示本地有效任意IP(直接就是数值类型) bind(lfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)); listen(lfd, );//同时允许128个客户端向我发起连接(默认值为128,最大上限就是128) clie_addr_len = sizeof(clie_addr);//求出客户端clie_addr结构体(IP、端口)的长度
cfd = accept(lfd, (struct sockaddr *)&clie_addr, &clie_addr_len);//阻塞等待 while () {
n = read(cfd, buf, sizeof(buf));//n为实际读到的字节
for (i = ; i < n; i++)
buf[i] = toupper(buf[i]); //小写转为大写
write(cfd, buf, n);
} close(lfd);//关闭文件描述符
close(cfd); return ;
}

  开启两个终端,终端1编译并执行服务端程序:

    

  此时服务器程序运行到accept(),并阻塞等待。

  终端2执行:

    

  nc命令中,n代表Network,c代表Connect <nc简称“脑残”>

  常用nc来测试服务端程序。

最新文章

  1. swing with transformjs
  2. HDU 1548 A strange lift (bfs / 最短路)
  3. Myeclipse设置JAVA选中高亮显示
  4. 七牛portal可用性测试记
  5. checkbox的全选、反选、删除(MainActivity)
  6. Machine Learning for hackers读书笔记(二)数据分析
  7. 第一章:Pandas概论
  8. 如何修改word的项目编号
  9. vmware 8下ubuntu 13.04安装vmware tools
  10. Spring/Hibernate Improved SQL Logging with log4jdbc---reference
  11. KVO 其原理探究
  12. Business&#160;Intelligence(BI)&#160;商务智能
  13. Hibernate学习笔记(4)---hibernate的核心接口
  14. v-for并判断当前元素是否选中:$set实现响应添加属性
  15. JVM之对象的创建简要流程
  16. SQL更新语句,Error Code: 1175. You are using safe update(在进行视图更新的时候遇到)
  17. spring-framework-中文文档二:Bean概述
  18. svn导出文件进行比较
  19. 用Omniauth来Login with Facebook(Go-rails课程)
  20. Tomcat——Tomcat使用详解

热门文章

  1. python实现测试报告的bug统计
  2. 93. Restore IP Addresses(dfs)
  3. git 常见报错
  4. SQLite3学习笔记----创建数据库的两种方式
  5. JDeveloper 开发环境配置
  6. 全球顶尖大学的UX课程资源,英文!
  7. web api control注册及重写DefaultHttpControllerSelector、ApiControllerActionSelector、ApiControllerActionInvoker(转)
  8. shell 用环境变量的值修改properties文件
  9. SGU 194 Reactor Cooling (有容量和下界的可行流)
  10. 如何用Word发布WordPress博客