c语言socket编程流程,C语言socket编程简单步骤「建议收藏」

c语言socket编程流程,C语言socket编程简单步骤「建议收藏」服务器端/***************************************函数功能:创建套接字的函数*输入参数:无*输出参数:无*返回值:套接字的ID*/intcreat_socket(){intret;ret=socket(AF_INET,SOCK_STREAM,0);if(ret==-1){perror(“socketerror”);exit(1);}printf(“创建s…

大家好,又见面了,我是你们的朋友全栈君。

服务器端

/**************************************

*函数功能:创建套接字的函数

*输入参数:无

*输出参数:无

*返回值:套接字的ID

*/

int creat_socket()

{

int ret;

ret=socket(AF_INET,SOCK_STREAM,0);

if(ret==-1)

{

perror(“socket error”);

exit(1);

}

printf(“创建socket成功\n”);

return ret;

}

/**************************************

*函数功能:绑定本地IP和端口号到socket

*输入参数:套接字ID,网际套接字地址结构体,端口号

*输出参数:无

*返回值:无

*/

void bind_socket(int socketid,struct sockaddr_in server_addr,int port)

{

int ret;

memset(&server_addr,0,sizeof(struct sockaddr_in));

server_addr.sin_family=AF_INET;

server_addr.sin_port=htons((short)port);

//连接请求使用一个特殊的地址

server_addr.sin_addr.s_addr=INADDR_ANY;

//绑定本地地址和端口号,参数二强转成通用类型

ret=bind(socketid,(struct sockaddr *)&server_addr,sizeof(server_addr));

if(ret<0)

{

perror(“bind error”);

exit(1);

}

printf(“bind success….\n”);

}

/**************************************

*函数功能:监听套接字

*输入参数:套接字ID

*输出参数:无

*返回值:无

*/

void listen_socket(int socketid)

{

int ret;

ret=listen(socketid,ONLINE_MAX);//启动监听

if(ret==-1)

{

perror(“listen error”);

exit(1);

}

printf(“listening success….\n”);

//通过accept接收客户端连接

}

/**************************************

*函数功能:接收客户端的套接字连结

*输入参数:套接字ID,网际套接字地址结构体

*输出参数:无

*返回值:连结的套接字ID

*/

int accept_socket(int socketid,struct sockaddr_in client_addr)

{

int ret;

int len;

len=sizeof(client_addr);

ret=accept(socketid,(struct sockaddr *)&client_addr,&len);

if(ret==-1)

{

perror(“accept error”);

exit(1);

}

printf(“accept success….\n”);

return ret;

}

客户端:

/**************************************

*函数功能:创建套接字的函数

*输入参数:无

*输出参数:无

*返回值:套接字ID

*/

int creat_socket()

{

int ret;

ret=socket(AF_INET,SOCK_STREAM,0);

if(ret==-1)

{

perror(“socket error”);

exit(1);

}

printf(“创建socket成功\n”);

return ret;

}

/**************************************

*函数功能:连接套接字的函数

*输入参数:套接字ID,网际套接字地址结构体

*输出参数:无

*返回值:无

*/

void connect_socket(int socketid,struct sockaddr_in server_in)

{

int ret;

ret=connect(socketid,(struct sockaddr *)&server_in,sizeof(server_in));

if(ret==-1)

{

perror(“connect error”);

exit(1);

}

printf(“connecting….\n”);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158498.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AGV控制系统搭建

    目的  本文介绍自动导引车(AGV)车载控制系统的实现过程,分为硬件搭建和软件设计两部分,并在其中穿插AGV控制的基础知识讲解。1.车载控制器1.1控制器的类型  车载控制器是控制系统乃至整个AGV的核心,那么应该选择哪种控制器呢?根据笔者的经验,现在的AGV厂家采用的车载控制器基本可以分为以下三种:  下面简要介绍几种控制器的特点:  1.PLC…

    2022年4月9日
    113
  • Java程序员,你一定需要了解的六款大数据采集平台

    Java程序员,你一定需要了解的六款大数据采集平台随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台: ApacheFlume Fluentd Logstash Chukwa Scribe SplunkForwarder 大数据平台与数据采集任何完整的大数据平台,一般包括以下的几个过程: 数据采集 数据存储 数据处理 …

    2022年6月6日
    127
  • Linux运行c#_在控制台运行一个java程序

    Linux运行c#_在控制台运行一个java程序1、创建控制台程序如上图所示,选择语言为linux,我用的VS2019,.Net5.0,一直点下一步,创建。2、创建TCP服务端程序usingLinuxTcpApp.TcpServer;usingSystem;usingSystem.Net;namespaceLinuxTcpApp{classProgram{privatestaticAsyncTcpServertcpServer;staticvoidMain(s

    2025年9月5日
    9
  • 八皇后问题详解(四种解法)

    八皇后问题详解(四种解法)如果你去百度百科八皇后这个问题,你会发现人家也是历史上有头有脸的一个问题,最后一句“计算机发明后就有一万种方式解决这个问题”读起来也让程序猿们很快活。闲话少说,开始阐述我的思路:最无脑的解法一定是八个for遍历,浪费了太多的计算资源在各种无用功上面,我们稍微构思一下:首先如何决定下一个皇后能不能放这里可以有两种思路,第一种是尝试维护一个8*8的二维矩阵,每次找到一个空位放下一个皇后就把对应行列对

    2022年6月30日
    22
  • UTF-8编码规则_库德巴码编码规则

    UTF-8编码规则_库德巴码编码规则UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织

    2022年8月4日
    9
  • Java开发不得不会!郑州java外包公司有哪些

    Java开发不得不会!郑州java外包公司有哪些拼多多三面惨败,java中间件、数据库与spring框架,答不上…面试开火箭,工作拧螺丝…月初有个朋友面试拼多多,一面自信满满过了,结果三面却惨败…昨天朋友约我出来讨论问题在哪里,三面就答不上了(卡壳很严重呐)。听完整个面试经历之后,我总结了一下,这次拼多多一二三面其实综合总结起来就问了五个方面的东西,分别是自我介绍+项目、java基础、中间件、数据库和spring框架,另外还问了道算法题。接下来就跟大家一起来看看拼多多的面经,看看你是否能轻松应对面试官的炮轰?技术焦虑现在的技术圈子很火热,任何技术

    2022年5月11日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号