热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在手机上怎么运行c语言,各位前辈这两个程序怎么在手机上运行

该楼层疑似违规已被系统折叠隐藏此楼查看此楼*madebyebhrz*#include#include#include#include#include#include#include

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*made by ebhrz*/

#include

#include

#include

#include

#include

#include

#include

/*---------global define---------*/

int cfd; /* 文件描述符 */

int recbytes;

int sin_size;

char buffer[1024] = { 0 }; /* 接受缓冲区 */

struct sockaddr_in s_add, c_add; /* ip、端口 */

unsigned short portnum = 1234;//端口可自己修改

char msg[1024];

/*-----------global define end-----*/

int set_link()

{

cfd = socket(AF_INET, SOCK_STREAM, 0);

if (-1 == cfd)

{

printf("socket fail ! \r\n");

return -1;

}

printf("socket ok !\r\n");

bzero(&s_add, sizeof(struct sockaddr_in));

s_add.sin_family = AF_INET;

s_add.sin_addr.s_addr = inet_addr("127.0.0.1"); /* ip转换为4字节整形,使用时自己修改 */

s_add.sin_port = htons(portnum);

if (-1 ==

connect(cfd, (struct sockaddr *)(&s_add), sizeof(struct sockaddr)))

{

printf("connect fail !\n");

return -1;

}

return 1;

}

int rec()

{

if (-1 == (recbytes = read(cfd, buffer, 1024)))

{

printf("read data fail !\n");

return -1;

}

printf("%s\n", buffer);

if(strcmp(buffer,"bye bye")==1)

exit(0);

memset(buffer,0,1024);

}

int snd()

{

scanf("%[^\n]", msg);

if (-1 == write(cfd, msg, 32))

{

printf("write fail!\n");

return -1;

}

memset(msg, 0, 1024);

getchar();//接收遗留\n

}

int main()

{

printf("Hello,welcome to client !\n");

pid_t pid;

if (set_link() != 1)

{

printf("sth wrong");

return -1;

}

pid = fork();

if (pid <0)

perror("fork error");

else if (pid > 0)

{

while (1)

rec();

close(cfd);

}

else

{

while (1)

snd();

close(cfd);

}

return 0;

}

/*made by ebhrz*/

#include

#include

#include

#include

#include

#include

#include

/*---------global define---------*/

int sfp, nfp;// 文件描述符

int recbytes;

int sin_size;

char buffer[1024] &#61; { 0 };//接受缓冲区

struct sockaddr_in s_add, c_add; //ip、端口

unsigned short s_portnum &#61; 1234;

char msg[1024];

/*-----------global define end-----*/

int set_link()

{

sfp &#61; socket(AF_INET, SOCK_STREAM, 0);

if (-1 &#61;&#61; sfp)

{

printf("socket fail ! \n");

return -1;

}

printf("socket ok !\n");

bzero(&c_add, sizeof(struct sockaddr_in));

s_add.sin_family &#61; AF_INET;

s_add.sin_addr.s_addr &#61; htonl(INADDR_ANY);//ip不定

s_add.sin_port &#61; htons(s_portnum);

if (-1 &#61;&#61; bind(sfp, (struct sockaddr *)(&s_add), sizeof(struct sockaddr)))

{

printf("bind fail !\r\n");

return -1;

}

printf("bind ok !\r\n");

sin_size &#61; sizeof(struct sockaddr_in);

return 1;

}

int rec()

{

if (-1 &#61;&#61; (recbytes &#61; read(nfp, buffer, 1024)))

{

printf("read data fail !\n");

return -1;

}

printf("%s\n", buffer);

if(strcmp(buffer,"bye bye")&#61;&#61;1)

exit(0);

memset(buffer,0,1024);

}

int snd()

{

scanf("%[^\n]", msg);

printf("%s", msg);

if (-1 &#61;&#61; write(nfp, msg, 32))

{

printf("write fail!\n");

return -1;

}

memset(msg, 0, 1024);

getchar();

}

int main()

{

printf("Hello,welcome to service !\n");

pid_t pid;

if (set_link() !&#61; 1)

{

printf("sth wrong");

return -1;

}

if (-1 &#61;&#61; listen(sfp, 5))

{

printf("listen fail !\n");

return -1;

}

nfp &#61; accept(sfp, (struct sockaddr *)(&c_add), &sin_size);

if (-1 &#61;&#61; nfp)

{

printf("accept fail !\n");

return -1;

}

pid &#61; fork();

if (pid <0)

perror("fork error");

else if (pid > 0)

{

while (1)

snd();

close(nfp);

close(sfp);

}

else

{

while (1)

rec();

close(nfp);

close(sfp);

}

return 0;

}



推荐阅读
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
author-avatar
mobiledu2502917563
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有