您当前的位置:首页 > 互联网教程

计算机网络socket linux下用c或c++写

发布时间:2025-05-12 00:09:10    发布人:远客网络

计算机网络socket linux下用c或c++写

一、计算机网络socket linux下用c或c++写

我这有一段最简单的SOCKET连接服务端的~!前阵子装Ubuntu 10后写着实验用的,这是最基本的TCP服务端框架。各种函数的条用跟 WINDOWS下的一样(我说的WINDOWS下可不是MFC喔~!)客户端自己琢磨,不懂的话再发你~!至于你要的细节,我感觉还是自己写的好

人不能太懒~!必须深入认识否则你领略不到 C程序设计的精髓~!

//////////代码如下//////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////

///////////////////////// H*F*W 2010.05.21 In GuangZhou///////////////////////////

///////////////////////// LINUX SOCKET实验最简单服务端///////////////////////////

/////////////////////// linux编程 SOCKET,GTK有共同兴趣的朋友+我 Q: 176469428////////

int Hlisten(unsigned short hport)

int hsock,rhsock,cc,alen,ret;

if((hsock=socket(AF_INET,SOCK_STREAM,0))==-1){printf("Error in socket()\n");return 0;}//建立套接字

memset(&hlsock,0,sizeof(hlsock));//初始化SOCKET空间

hlsock.sin_port=htons(hport);///监听端口

hlsock.sin_addr.s_addr=htonl(INADDR_ANY);///地址族

setsockopt(hsock,SOL_SOCKET,SO_REUSEADDR,&ret,sizeof(ret));

if(bind(hsock,(struct sockaddr*)&hlsock,sizeof(hlsock))==-1){printf("Error in bind()\n");return 0;}//帮定

if(listen(hsock,0)==-1){printf("Error in listen()\n");return 0;}///进入监听状态

rhsock=accept(hsock,(struct sockaddr*)&hlsock,&alen);///接受客户端接入

cc=recv(rhsock,hbuf,sizeof(hbuf),0);///等待接收数据

printf("%s",hbuf);///显示接收内容

int main(int argc,char*argv[])

//if(argc<=1){printf("usge: [port]");return 0;}

Hlisten(330);//调用监听过程传入监听端口

///////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////

//////////////////使用gcc编译直接就可以看到效果////////////////

/////////////////////////////////////////////////////////////////

二、请问c语言socket编程客户端如何与客户端通信的啊

1、设想一个类似于QQ的通信场景。建立一个服务器,作为消息的中转站。假设A、B、C是客户端。如果A想要向B发送消息,A会向服务器发送一条包含接收者B和消息内容的信息,例如(A,[B],"我是A,这是我给B的消息")。服务器接收到消息后,会根据接收者列表将消息转发给相应的客户端B。

2、如果A想要向B和C同时发送一条消息,A可以向服务器发送一条包含接收者B和C以及消息内容的指令,例如(A,[B,C],"我是A,这是我给B和C发送的消息")。服务器接收到这条消息后,会将消息内容分别转发给B和C。

3、当服务器需要向A、B、C发送一条消息时,必须先与这三个客户端都建立连接,然后分别向它们发送同一条消息。

4、服务器启动后,会监听socket连接。一旦有客户端请求连接,比如A请求连接,服务器会创建一个线程,如SA,专门处理A与服务器之间的通信。服务器继续监听其他可能的连接请求。SA线程仅负责处理服务器与客户端A之间的通信。

5、类似地,SB线程专门负责处理服务器与客户端B之间的通信,而SC线程则专门负责处理服务器与客户端C之间的通信。

6、服务器有一个名为transpond的方法,用于处理转发消息。SA、SB、SC线程调用此方法来实现消息的转发和通信。

三、C++新手如何学习socket

1、先从最简单的Socket文档里了解普通的客户端和服务端工作步骤;

2、再而逐步了解阻塞和非阻塞模式;

3、再继续理解TCP/IP中的可靠连接和非可靠连接;

4、写出简单的客户端服务端工程,然后接着学习更多的协议,察看<<Windows核心编程>>;

5、最后再学习异步I/O操作,完成端口的使用方式,进而写出功能强大的Socket通讯程序。