c语言异常

参照他人代码写一个tcp的 socket 开发测试

异常A,在mac osx系统下编译失败,缺库转到debian下。

异常B,include引用文件顺序不对,编译大遍异常

异常C,/usr/include/x86_64-linux-gnu/sys/types.h:34:1: error: unknown type name ‘__u_char’ 文件前注释的问题,删掉注释则通过

服务端

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <errno.h>
#include <stdio.h>
int accepthandle(int acceptpoint);
int main(void) {
//服务端socket
int socketfid;
char buf[];
struct sockaddr_in server_add;
char * localaddr = "127.0.0.1";//
int pid;
struct sockaddr_in client_add; server_add.sin_family=AF_INET;
server_add.sin_port=htons();
server_add.sin_addr.s_addr=htonl(INADDR_ANY); socketfid=socket(AF_INET,SOCK_STREAM,);
printf("socket start \n");
if (socketfid < ) {
printf("socket error \n");
return -;
}
printf("bind start \n");
if(bind(socketfid,(struct sockaddr *)&server_add,sizeof(struct sockaddr))<){
printf("bind error \n");
return -;
}
//监听套接子
printf("listen start \n");
if(listen(socketfid,)<){
printf("listen error \n");
return -;
}
printf("accept start \n");
while(){
memset(&client_add, , sizeof(client_add));
int leng=sizeof(client_add);
int acceptresult=accept(socketfid,(struct sockaddr *) &client_add,&(leng)); if (acceptresult < ) {
printf("accept error %d %d is sub\n", acceptresult,pid);
//子进程结束了
exit();
}
printf("clent addr%s porit %d\n",
inet_ntop(AF_INET, &client_add.sin_addr, buf, sizeof(buf)),
ntohs(client_add.sin_port));
pid = fork();
printf("%d\n",pid);
if (pid < ) {
printf("pid<0\n");
close(acceptresult);
}
else if(pid == ){
printf("pid=0 is sub \n");
//子进程停止监听,去处理接收数据
close(socketfid);
//子进程到了这里,执行完接收后,继续执行while 但是因为socketfid 已经关闭,accept 返回异常 -1 直接执行exit(0) 退出了子进程
accepthandle(acceptresult);
} else{
//父进程到了这里,执行完这一步,继续while 到accept这里,又被阻塞。如此循环。
//这里错打印不出结果,可能是shell只能展示一个进程的内容。
printf("pid is parent\n");
}
}
return EXIT_SUCCESS;
}
int accepthandle(int acceptpoint){
char buf[];
int readresult;
while(){
readresult=read(acceptpoint,buf,sizeof(buf));
if(readresult<){
printf("read error \n");
close(acceptpoint);
break;
}
else if (readresult==){
printf("client exit \n");
close(acceptpoint);
break;
}
else{
printf("client:%s\n", buf);
if (strcmp("exit", buf) == ) {
printf("exit \n");
close(acceptpoint);
return ;
} } }
return ;
}

client

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
int main(void) {
int socketfid;
char buf[];
struct sockaddr_in server_add;
char * localaddr = "127.0.0.1";//
server_add.sin_family=AF_INET;
server_add.sin_port=htons();
server_add.sin_addr.s_addr=htonl(INADDR_ANY);
socketfid=socket(AF_INET,SOCK_STREAM,);
while (connect(socketfid,(struct sockaddr*)&server_add,sizeof(server_add))==-){
printf("Connect Error!\n");
}
char *data="hello word";
printf("length %d!\n",sizeof(data));
send( socketfid,data,sizeof(data),);
printf("bind start \n"); close(socketfid); return EXIT_SUCCESS;
}

c socket 开发测试的更多相关文章

  1. (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写

    原文出处:http://ajita.iteye.com/blog/1728243/ 先说明一下,本人是开发,对测试不是特别熟悉,但因工作的需要,也做过一些性能测试方面的东西.比较久之前很简单的用过,最 ...

  2. Loadrunner开发测试脚本

    Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...

  3. IOS socket开发基础

    摘要 详细介绍了iOS的socket开发,说明了tcp和udp的区别,简单说明了tcp的三次握手四次挥手,用c语言分别实现了TCPsocket和UDPsocket的客户端和服务端,本文的作用是让我们了 ...

  4. 老司机带你用vagrant打造一站式python开发测试环境

      前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...

  5. Android Socket 开发技术

    根据之前的经验,应用软件的网络通信无非就是Socket和HTTP,其中Socket又可以用TCP和UDP,HTTP的话就衍生出很多方式,基础的HTTP GET和POST请求,然后就是WebServic ...

  6. 开发测试时给 Kafka 发消息的 UI 发送器――Mikasa

    开发测试时给 Kafka 发消息的 UI 发送器――Mikasa 说来话长,自从入了花瓣,整个人就掉进连环坑了. 后端元数据采集是用 Storm 来走拓扑流程的,又因为 @Zola 不是很喜欢 Jav ...

  7. Socket开发

    Socket开发框架之消息的回调处理 伍华聪 2016-03-31 20:16 阅读:152 评论:0     Socket开发框架之数据加密及完整性检查 伍华聪 2016-03-29 22:39 阅 ...

  8. 基于.net的微服务架构的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...

  9. [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题

    机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...

随机推荐

  1. 关于WIN7系统,在运行pycharm时,老出现问题

    今天在pycharm中写python代码的时候,一直跳出一个窗口: 后来经过上网查询,得出针对此类问题的解决办法如下: (1)在运行中输入“Regedit” (2)HKEY_CURRENT_USER— ...

  2. Python笔记_第四篇_高阶编程_检测_1.对函数进行单元检测

    1. 对函数进行单元检测: 单元检测: 作用:用来对一个函数.一个类.一个模块进行正确性校验工作. 结果: * 单元测试通过,说明我们测试函数的功能正确. * 单元测试不通过,说明函数有BUG,要么测 ...

  3. CodeForces 1292A NEKO's Maze Game(思维)

    #include <stdio.h> #include <string.h> #include <iostream> #include <string> ...

  4. layui select恢复默认值

  5. Tooltips

    #include<windows.h> #include<Commctrl.h> #include"resource.h" #pragma comment( ...

  6. Dynamics CRM - Plug-in Class 和 Workflow Class 的用法与区别

    在 Dynamics CRM 开发中,我们可以使用 JavaScript 在前端对 Entity Form 进行数据操作,与此同时,我们也可以使用 C# 写后台插件,其中就包括了 Plug-in Cl ...

  7. springboot访问请求404问题

    新手在刚接触springboot的时候,可能会出现访问请求404的情况,代码没问题,但就是404. 疑问:在十分确定代码没问题的时候,可以看下自己的包是不是出问题了? 原因:SpringBoot 注解 ...

  8. 大言不惭 swank? talk about sth or speak too confidently cán,意思是指说大话而毫不感到难为情。出自《论语·宪问》:“子曰:‘其言之不怍,则为之也难。’”宋·朱熹注:“大言不惭,则无必为之志,而不自度其能否也。欲践其言,其不难哉!” 是不是类似于 swank?

    大言不惭 swank? talk about sth or speak too confidently cán,意思是指说大话而毫不感到难为情.出自<论语·宪问>:“子曰:‘其言之不怍,则 ...

  9. 3)PHP基本语法和变量基础,区分大小写

    (1)语法环境: PHP嵌入到html到代码中: . <?php 这里是PHP代码 ?> 标准形式: <script language='php'> 这里是PHP代码 < ...

  10. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:输入文件队列

    import tensorflow as tf # 1. 生成文件存储样例数据. def _int64_feature(value): return tf.train.Feature(int64_li ...