
正文
c语言网络编程函数 c语言网络编程函数有哪些
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言 网络编程 关于accept函数的问题
你的两个调用方式最后一个参数,意义完全不同,addrlen是将addrlen的地址传给accept(是一个可以写的变量地址)
而你的后一个,是将sizeof(addr)它是一个常量,一般为4,转为指针传给accept,这个地址是不可写的
相关问答
Q1: 怎样用C语言做socket网络编程?
mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用\x0d\x0a 1.socket() \x0d\x0a 2.bind() \x0d\x0a 3.connect() \x0d\x0a 4.listen() \x0d\x0a 5.accept() \x0d\x0a 6.send() 和recv() \x0d\x0a 7.sendto() 和recvfrom() \x0d\x0a 8.close() 和shutdown() \x0d\x0a 9.getpeername() \x0d\x0a 10.gethostname() \x0d\x0a这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了。
Q2: 《c语言》中select函数的作用是什么?
selcet函数是一个轮循函数,即当循环询问文件节点,可设置超时时间,超时时间到了就跳过代码继续往下执行。
select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执 行了select()的进程哪一Socket或文件可读或可写。主要用于Socket通信当中。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
Q3: Linux C语言网络编程问题!
unsigned int dir(char * server) {
int sck;//套接字变量
struct sockaddr_in serv_adr; //远程主机c语言网络编程函数的地址
struct hostent *host; //指向远程主机c语言网络编程函数的指针
unsigned char databuf[FILEBUF_SIZE]; //数据
int bytes = 0, bytesread = 0; //字节数c语言网络编程函数,读取到c语言网络编程函数的字节数
host = gethostbyname(server); //根据远程主机的主机名c语言网络编程函数,得到指向远程主机的指针
if (host == (struct hostent *) NULL) { //如果得到指向远程主机的指针失败,报告错误,并返回
perror("gethostbyname failed");
return 0;
}memset(serv_adr, 0, sizeof(serv_adr)); //初始化远程主机的地址,结构体内所有成员清零
serv_adr.sin_family = AF_INET; //设置地址类型
memcpy(serv_adr.sin_addr, host-h_addr, host-h_length);//取出指向远程主机的指针中包含的地址信息,赋给远程主机地址变量
serv_adr.sin_port = htons(SERVICE_PORT);//设置端口号,比如http服务对应80端口,ftp对应21端口
if ((sck = socket(AF_INET, SOCK_STREAM, 0)) 0) { //如果建立TCP协议的套接字失败,报告错误,并返回
perror("error on socket()");
return 0;
}
if (connect(sck, (struct sockaddr *)serv_adr, sizeof(serv_adr)) 0) {//如果使用该套接字连接到远程主机失败,报告错误,并返回
perror("error on connect()");
return 0;
}write(sck, "DI\n\n", 4); //连接成功,发送内容为"DI\n\n"的消息,远程主机收到该消息,解析后生成目录列表,并将目录列表信息传递回来
printf("Remote directory listing:\n");//输出提示信息“远程主机正在生成目录列表”
while ((bytes = read(sck, databuf, FILEBUF_SIZE)) 0) { //从套接字的数据流中读取远程主机的返回信息(即目录列表),每次读取FILEBUF_SIZE个字节,直到全部读取完毕
write(fileno(stdout), databuf, bytes);//将每次读到的数据,输出到标准输出流(stdout),即屏幕上
bytesread += bytes;//接收到的字节数累加
}
close(sck); /* Close the socket */ //通信完成,关闭套接字,关闭连接
return bytesread; //返回读取到的字节数(即远程主机返回的信息的大小)
}
Q4: C语言:编写函数fun返回二维数组周边元素之和,咋写?
入门到放弃?
“C/C++真的太难学了,我准备放弃了!”
很多初学者在学完C和C++的基本语法后,就停滞不前了,最终走向“从入门到放弃”。其实,我们初学者最需要的不是HelloWorld,也不是语法知识的堆砌,需要的只是实战项目的磨砺。
一个项目一座城
一个项目,一座城。写完一个项目,攻克一座城池。
以下十三个循序渐进的项目,让你从小白,快速晋升为大牛。
奇牛项目1《黑客攻击系统》-第一城
从完全零基础开始,手把手开发这款黑客攻击系统。
通过用户端的输入, 向服务器端木马发送攻击命令,实现多种方式的攻击效果。
通过这个项目,可以掌握C/C++基础(数据类型,变量的使用,各种运算,控制语句,命名空间,输入输出,函数调用,库文件的使用等),直接使用图形库来实现窗口用户界面,直接使用库文件来实现攻击效果。
奇牛项目2 《人工智能地形导航系统》-第二城
具备C/C++基础后,进一步学习二维数组、多维数组在工程项目中的应用。
根据地图的海拔数据,来识别地形上的各个峰点(最高点)和谷点(最低点),以确定地形中峰点的数目和位置,为探测器提供导航数据。
通过这个项目,可以深刻掌握二维数组、多维数组的本质,以及在工程项目中的应用方法。
奇牛项目3《人工智能双色球预测系统》-第三城
根据笔者Rock的闲暇之作改写,体会以小博大的乐趣。
通过自动分析博彩官网的海量数据,根据自定义的统计预测规则,来捕捉下期开奖的最大概率。
通过这个项目,掌握指针的使用,以及指针在工程项目中的应用。
奇牛项目4《地震监测系统》-第四城
地震检波器每隔固定的时间间隔,采样一次预测地震的能量数据,并保存到文件中。地震监测系统从这个文件中读取相应的能量数据,测试在给定的时间点上,一个短时间窗口内的取样值与一个长时间窗口内取样值的商,如果这个比例高于给定的阈值,那么在这个事件点上极有可能发生地震。
通过这个项目,掌握C/C++文件的读写、以及动态内存管理的使用,以及它们在工程项目中的应用。
奇牛项目5《智能婚恋交友系统》-第五城
程序员的相亲活动,低调且奢华。这个项目直接致敬某XX佳缘婚恋交友平台,毕竟Rock也曾经是该平台的注册会员,并在其中活跃良久。
这个项目实现了该平台的核心功能-高匹配度自动交友。
通过这个项目,掌握C++的面向对象思想、继承和派生、多态、友元、运算符重载等核心机制,以及它们在工程中的应用。
奇牛项目6《广州军区微波通信系统》-第六城
这个项目是根据笔者Rock负责研发的广州军区南海无线微波通信系统改写的, 已去除敏感数据。
这个项目是在菲律宾、越南肆意骚扰我国南海岛屿的背景下研发的。通过这个项目,掌握C++核心机制-多态的使用,以及在军事工程项目中的应用。
奇牛项目7《模板库高级编程-万能择优器》-第七城
在掌握了C、C++的核心特性之后,能否掌握C++标准模板库STL, 是区分一名合格C++程序员的重要标志。
这个项目通过构建一个通用的择优器,来掌握C++泛型编程的使用,以及在自定义模块开发中的应用。
奇牛项目8《游戏服务器端数据库》-第八城
在征服了C/C++语言的核心特性之后,很多人会感到新的迷茫:C/C++语言到底能做什么?海量用户数据怎么处理?
这个项目从零开始构建大型游戏数据库,以掌握数据库开发的方法,以及在产品级项目中的应用。
奇牛项目9 《企业QQ》-第九城
很多C/C++初学者,认为C和C++虽然很强大,但是对于用户界面开发,就不是很方便了。
其实对于用户界面的开发,C和C++,尤其是C++,是非常强悍的。各种绚丽的用户界面,C++都能游刃有余地呈现。
这个项目能够深度掌握基于C++的用户界面开发,以及网络编程,实现产品级的应用效果。
奇牛项目10 《跨平台Word》-第十城
IT外包开发时,用户的需求总是千变万化,界面和功能都需要做特殊的定制,这个项目让我们掌握开发特定UI和特定功能的应用软件,为以后独立承接IT外包打下足够的基础。
奇牛项目11《 游戏外*修改器》-第十一城
外*、逆向、破解无疑是每一位程序员为之向往的“禁地”,这个项目融合逆向、汇编、DLL注入、内存篡改等黑技术,开发客户端游戏的外挂,实现对游戏数据的截取、修改。
通过这个项目,可以深刻掌握指针、逆向、DLL注入等技术的使用,以及Windows客户端应用的开发。
奇牛项目12 《人工智能中国象棋人机对弈》-第十二城
完胜李世石和柯洁的阿尔法狗,其底层框架就是使用C++实现的。
除了围棋,C++更是在象棋领域完胜人类。这个项目,就是使用C++打造的人工智能象棋。
通过这个项目,可以轻松掌握各种复杂数据结构,把个人编程能力提升到极致。
奇牛项目13 《电信级大型互联网项目-共享顺风车系统》-第十三城
掌握C、C++客户端开发之后,高性能服务器开发,成为判别C++高级程序员的重要标志。这个项目将实现电信级的大型互联网服务器。
通过奇牛编程的项目实战,可以掌握百万级高并发服务器的核心技术(线程池、epool架构、协议开发等)
敲代码的夜,清脆的键击,孤独而坚定。
弹指间,攻城略地,早已硝烟弥漫。
十三座城池,待你来征服。
经过以上13个项目的修炼,你已经从小白蜕变为能够驾驭大型项目开发的大牛了。
Q5: 基于c语言,网络编程,服务器接收客户端1的信息发送给客户端2
char
buff2[1024*10];
int
receiveLen;
/*调用accept函数,等待客户端的连接*/
client_fd=accept(sockfd,(struct
sockaddr
*)client_sockaddr,sin_size
/*调用recv函数接收客户端的请求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef
int
(WINAPI
ICEPUB_TCPSENDANDRECEIVETEXT)(char
*sendBuff,
int
sendBuffLen,char
*recvBuff,int
recvMaxLen,char*
serverIP,int
serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT
*icePub_tcpSendAndReceiveText
=
0;
HINSTANCE
hDLLDrv
=
LoadLibrary
("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT
*)
GetProcAddress
(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox
(buff2);
c语言网络编程函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言网络编程函数有哪些、c语言网络编程函数的信息别忘了在本站进行查找喔。








