,,C语言中的socket编程实例代码

,,C语言中的socket编程实例代码

这篇文章主要介绍了如何用C语言实现(电源)插座编程,文中代码非常详细,供大家学习参考,感兴趣的朋友可以了解下

前不久刚看完《c primer plus》 ,收获颇丰,对于C语言也有了更全面的认识,对于模块化和数据结构也有了更多的想法,之前学过C语言,但很多已经记不起了,知识很零散,这也是我看这本书的原因。

之后一段时间都会在进一步学习编程的同时研究(电源)插座通讯,目标是要将(电源)插座研究透,设计出自己的框架,以后从事服务器开发和构架应该也会大有裨益。

好了,废话不多说,奉上网上找的源码。

/*窗口插座服务端编程测试*/

#include stdio.h //用于打印函数等函数的调用

#包含Winsock 2。h//套接字的函数调用

#杂注注释(lib,' ws2_32.lib') //C语言引用其他类库时,除了h。文件外,还要加入对应的解放运动文件,如果仍提示错误则需要在集成驱动电子设备中手动加入该链接库

int main()

{

WSADATA wsaData

WSAStartup(MAKEWORD(2,2),wsa数据);

SOCKET s=socket(PF_INET,SOCK_STREAM,IP proto _ TCP);

在sockaddr

sockaddr.sin _ family=PF _ INET

sockaddr .S_un .s _ addr=inet _ addr(' 127。0 .0 .1 ');//需要绑定到本地的哪个互联网协议(互联网协议)地址

sockaddr。sin _ port=htons(9000);//需要监听的端口

bind(s,(SOCKADDR*)sockaddr,sizeof(SOCKADDR));//进行绑定动作

听(s,1);//启动监听

printf('侦听端口[%d].\n ',9000);

而(真)

{

客户地址

int size=sizeof(SOCKADDR);

(电源)插座客户端(电源)插座

clientsocket=accept(s,clientAddr,size);//阻塞,直到有新传输控制协议客户端连接

printf('***SYS***新客户端被触动. \ n ');

char* msg='您好,我的客户“.\ r \ n”;

send(clientsocket,msg,strlen(msg) sizeof(char),NULL);//这里的第三个参数要注意,是加了一个茶长度的

printf((* * * *系统* * *你好.\ n’);

而(真)

{

char buffer[max byte]={ 0 };

recv(clientsocket,buffer,MAXBYTE,NULL);//一直接收客户端(电源)插座的派遣操作

printf(' * * *客户端* * * % s \ n ',缓冲区);

}

关闭套接字(客户端套接字);//关闭(电源)插座

}

closesocket//关闭监听(电源)插座

WSACleanup();//卸载

getchar();

退出(0);

}

/*窗口插座客户端编程测试*/

#include stdio.h //用于输入、输出函数的调用,printf,获取

#包含Winsock 2。h//套接字头文件

#包含Windows.h //为了方便调试,所以加入了等待2秒才进行连接服务器,这里用到了睡眠函数

#杂注注释(lib,' ws2 _ 32 ')//套接字库文件

typedef结构sockaddr _ in

int main()

{

睡眠(2000);//沉睡2秒再连接计算机网络服务器

WSADATA wsaData

WSAStartup(MAKEWORD(2,2),wsa数据);

SOCKET s=socket(PF_INET,SOCK_STREAM,IP proto _ TCP);

在sockaddr

sockaddr.sin _ family=PF _ INET

sockaddr .S_un .s _ addr=inet _ addr(' 127。0 .0 .1 ');

sockaddr。sin _ port=htons(9000);

connect(s,(SOCKADDR*)sockaddr,sizeof(SOCKADDR));

char buffer[max byte]={ 0 };

recv(s,buffer,MAXBYTE,NULL);

printf(' * * *服务器* * * % s ',缓冲区);

而(真)

{

char * mymsg=(char *)malloc(sizeof(char)* 100000);

printf('您现在可以与服务器聊天了:\ n’);

gets(mymsg);

send(s,mymsg,strlen(mymsg) sizeof(char),NULL);

/*

收到函数中的缓冲长度参数是可以固定值的

派遣函数中的缓冲长度参数不能固定值,需要看实际长度,并且考虑到'\0'字符串

*/

}

封闭插座

WSACleanup();

getchar();

退出(0);

}

/*窗口插座客户端编程测试*/

#include stdio.h //用于输入、输出函数的调用,printf,获取

#包含Winsock 2。h//套接字头文件

#包含Windows.h //为了方便调试,所以加入了等待2秒才进行连接服务器,这里用到了睡眠函数

#杂注注释(lib,' ws2 _ 32 ')//套接字库文件

typedef结构sockaddr _ in

int main()

{

睡眠(2000);//连接到服务器前休眠2秒钟

WSADATA wsaData

WSAStartup(MAKEWORD(2,2),wsa data);

SOCKET s=socket(PF_INET,SOCK_STREAM,IP proto _ TCP);

sockaddr _ in sockaddr

sockaddr.sin _ family=PF _ INET

sockaddr.sin_addr。S_un。s _ addr=inet _ addr(' 127 . 0 . 0 . 1 ');

sockaddr . sin _ port=htons(9000);

connect(s,(SOCKADDR*)sockaddr,sizeof(SOCKADDR));

char buffer[max byte]={ 0 };

recv(s,buffer,MAXBYTE,NULL);

printf(' * * *服务器***%s ',缓冲区);

while(真)

{

char * mymsg=(char *)malloc(sizeof(char)* 100000);

printf('您现在可以与服务器聊天了:\ n ');

gets(mymsg);

send(s,mymsg,strlen(mymsg) sizeof(char),NULL);

/*

recv函数中的bufferlength参数可以有一个固定值。

send函数中的bufferlength参数不能有固定值。它取决于实际长度,并考虑到了' \0 '字符串。

*/

}

closesocket

WSACleanup();

getchar();

退出(0);

}

刚开始不能正常工作,总是报错。查了资料,终于找到了解决办法。

常见错误:

未知的类型名“sockaddr_in”表明未定义的类型更改有两个原因。第一,没有添加ws2_32.lib库,可以在项目的链接设置中手动添加。第二,头文件只定义了结构名,没有定义它的别名,所以sockaddr_in不能用来直接定义类型。需要用struct sockaddr_in定义,也可以在sockaddr_in中添加typedef struct sockaddr _的别名定义;所以它能跑。

真正重要的是眼睛看不见的。

以上是C语言3354Socket编程示例代码的详细内容。更多关于C语言3354Socket编程的信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: