Dev C++ 中socket编程
2010年06月07日
一直没有用vc++来写程序,嫌太大的同时也嫌麻烦。很喜欢dev c++这个编译器,唯一的缺点就是图像化界面的支持,要配置起来很难。
在Dev中,写socket程序,大家要有两点注意的:
1,新建project 是win32 console,然后再project的属性linker里面添加D:/Dev- Cpp/lib/libws2_32.a这个动态库。
如果没有,则会出现连接错误。
2,#include Winsock2.h 这个头文件就0k。
这里有两个简单的udp的socket的server和client代码,实现了message的传送的打印。
----------------------------------------------------------server.c------------------------------------------------
#include
#include
#include
int main (int agrc,char*argv[])
{
SOCKET socket1;
WSADATA wsaData;
int ErrorCode;
if(WSAStartup(MAKEWORD(2,1),&wsaData))// windows socket dll;
{
printf("Winsock initiate failed!!\n");
WSACleanup();
return 0;
}
printf("Winsock start...\n");
const char* ip="127.0.0.1";
struct sockaddr_in server;
int len = sizeof(server);
server.sin_family = AF_INET;
server.sin_port = htons(12345); //the port need listened
server.sin_addr.s_addr = inet_addr(ip);
socket1 = socket(AF_INET,SOCK_DGRAM,0);
while (1)
{
char buffer[1024] = "\0";
printf("input message\n");
scanf("%s",buffer);
//printf("%s",buffer);
if(strcmp(buffer,"bye")==0)
{
printf("exit,bye!!\n");
Sleep(100);
closesocket(socket1);
break;
}
if(sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&server,len)!=SOCKET_ERROR)
{
printf("sending...");
Sleep(100);
if(recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&server,&len) != SOCKET_ERROR)
printf("recevie from server: %s\n",buffer);
}
}
closesocket(socket1);
system("pause");
return 0;
}
----------------------------------------------------client.c---------------------------------------------------
#include
#include
#include
int main (int agrc,char*argv[])
{
SOCKET socket1;
WSADATA wsaData;
int ErrorCode;
if(WSAStartup(MAKEWORD(2,1),&wsaData))// windows socket dll;
{
printf("Winsock initiate failed!!\n");
WSACleanup();
return 0;
}
printf("Winsock start...\n");
struct sockaddr_in local;
struct sockaddr_in client;
int len = sizeof(client);
local.sin_family = AF_INET;
local.sin_port = htons(12345); //the port need listened
local.sin_addr.s_addr = INADDR_ANY; //localhost
socket1 = socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(struct sockaddr*)&local,sizeof(local));
while (1)
{
char buffer[1024] = "\0";
printf("waiting message from the clients...\n");
if(recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&client,&len) != SOCKET_ERROR)
{
printf("recevie message: [%s]---%s\n",inet_ntoa(client.sin_addr),buffer);
//send sth to the client
sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&client,len);
}
}
closesocket(socket1);
system("pause");
return 0;
}
发表评论
-
linux 电源管理
2012-01-20 09:01 2180linux 电源管理 2011年06 ... -
memcached完全剖析
2012-01-20 09:01 773memcached完全剖析 2011年0 ... -
关于文件的一些总结
2012-01-20 09:01 931关于文件的一些总结 2010年08月29日 Create ... -
low level I/O和stream I/O
2012-01-20 09:01 797low level I/O和stream I/O 201 ... -
充分利用 Xerces-C++,第 1 部分
2012-01-20 09:01 924充分利用 Xerces-C++,第 1 ... -
利用VBS脚本让qq永远在线
2012-01-19 14:05 829利用VBS脚本让qq永远在线 2011年06月07日 让 ... -
vbs脚本实例
2012-01-19 14:05 889vbs脚本实例 2011年02月28日 rem 结束QQ ... -
vbs 脚本没事测试玩
2012-01-19 14:05 672vbs 脚本没事测试玩 2011年03月27日 Set ... -
VBS脚本文件大全
2012-01-19 14:05 877VBS脚本文件大全 2011年05月24日 一、自动打开 ... -
自动下载并运行的VBS脚本代码[转载]
2012-01-19 14:04 1249自动下载并运行的VBS脚本代码[转载] 2012年01月15 ... -
解决系统提示:内存不能为“read”或"written"的办法
2012-01-17 03:55 728解决系统提示:内存不能为“read”或"writte ... -
内存不能为“read”或"written"的解决
2012-01-17 03:55 625内存不能为“read”或"written" ... -
0x08e629ab 指令引用的 0x0000000c内存不能为read 怎么解决11
2012-01-17 03:54 14390x08e629ab 指令引用的 0x00 ... -
内存不能为read和无法定位程序输入点 +@于动态链接库上
2012-01-17 03:54 1462内存不能为read和无法定位程序输入点 +@于动态链接库上 ... -
操作系统为XP 控制面板中的“添加删除程序”打不开,显示“rundll32.exe 遇到问题需要关闭。
2012-01-17 03:54 2699操作系统为XP 控制面板中的“添加删除程序”打不开,显示“ru ... -
基于C#的Socket开发快速入门
2012-01-16 02:42 657基于C#的Socket开发快速 ... -
C# Socket多线程编程实例
2012-01-16 02:42 595C# Socket多线程编程实例 ... -
C++ socket编程(tcp udp)
2012-01-16 02:42 655C++ socket编程(tcp udp) 2011 ... -
最基本的Socket编程C#
2012-01-16 02:41 609最基本的Socket编程C# 201 ...
相关推荐
下面我们将深入探讨C++中的Socket编程以及如何利用这个资源进行开发。 首先,Socket是操作系统提供的一个接口,用于进程间的网络通信,它使得应用程序能够发送和接收数据。在C++中,我们通常使用低级别的BSD Socket...
在C语言中,socket编程主要涉及以下步骤: 1. **创建Socket**:使用`socket()`函数创建一个socket描述符,这是所有网络通信的起点。例如: ```c int socket_desc = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); `...
C++中Socket网络编程实例详解 ...基于socket编程,基本上就是以下6个步骤: 1、socket()函数 2、bind()函数 3、listen()、connect()函数 4、accept()函数 5、read()、write()函数等 6、close()函数 下面直接
通过以上步骤,你可以在Devc++环境中实现基本的网络编程,无论是构建简单的聊天应用还是复杂的文件传输系统。记住,网络编程需要对并发处理、多线程和异常处理有一定的理解,这些都是进一步提升技能的关键。不断实践...
Socket编程是计算机网络通信中的重要概念,特别是在C++这样的编程语言中,它是构建客户端-服务器应用的基础。本主题主要关注如何使用C++实现基于Socket的聊天程序,涉及到TCP和UDP两种传输协议。 首先,让我们理解...
2. **地址结构体**:在UDP编程中,使用`sockaddr_in`结构体(对于IPv4)或`sockaddr_in6`(对于IPv6)来存储IP地址和端口号。例如,`struct sockaddr_in server_addr;`并填充相应的地址和端口信息。 3. **绑定**:...
在DEVC++中,你可以直接运行和调试socket编程的C代码,查看网络通信的过程。 这个压缩包中的样例代码应该包含了以上步骤的实现,通过阅读和运行这些代码,你可以深入理解socket编程的基本流程和原理。注意,样例...
C++ Socket编程是网络通信的核心技术之一,它允许程序通过网络发送和接收数据。在这个项目中,我们看到一个基于C++的控制台聊天工具,它巧妙地利用了Socket接口和多线程技术来实现服务器端(Server)和客户端...
虽然C++11之后的标准引入了许多新特性,如lambda表达式、右值引用等,但此项目仍能很好地展示C++在网络编程中的基础应用。 最后,压缩包内的源码和预编译的exe程序为学习和分析提供了便利。通过对源码的阅读和调试...
3. `DEVc++ 编译配置.PNG`:这是一个关于如何在DEV C++集成开发环境中配置和编译Socket项目的图像指南,对于初学者来说非常有用,可以帮助他们快速设置好编程环境。 4. `第13章:Socket编程及其应用实例.ppt.ppt`:...
C++中的`<sys/socket.h>`和`<netinet/in.h>`库提供了创建、绑定和监听套接字的接口。 2. **多线程**:为了同时处理多个客户端连接,服务器可能采用多线程技术。每个新连接都会启动一个新的线程来处理,确保并发性。...
1. **Socket编程**:在C++中,使用`<sys/socket.h>`头文件和相关的函数(如`socket()`, `connect()`, `bind()`, `listen()`, `accept()`等)来创建和管理套接字,这是进行网络通信的基础。 2. **并发处理**:为了...
其中包含了"文件传输"功能,这涉及到网络编程中的数据包封装、发送和接收,以及文件操作的知识。"聊天"功能则涉及到了客户端-服务器架构,可能使用了TCP或UDP协议进行消息传递,并且需要处理并发连接和数据同步问题...
C++ socket通讯模块,简单,全面,值得学习.
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口...
9. **开发环境**:`proxy.dev`可能是开发环境的相关文件,例如Dev-C++是一个集成开发环境,用于编写和编译C++代码。 这个项目展示了如何使用C++实现一个功能齐全的代理服务器,涵盖了网络编程、多线程、数据结构等...
Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言...
USB通信通常需要实现Android的USB主机模式API,而TCP/IP则涉及到网络编程,包括socket编程和数据包的封装与解析。 4. **屏幕捕获技术**: 实时投屏的核心在于获取手机屏幕的每一帧画面。Android提供了...
HP-Socket是一款广泛应用于网络通信开发的库,尤其在C、C++、Delphi和E语言的编程中。v5.7.1是该库在2019年12月22日发布的一个更新版本,它提供了最新的功能和优化,以适应不断变化的网络环境需求。 首先,TCP...