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 2124linux 电源管理 2011年06 ... -
memcached完全剖析
2012-01-20 09:01 748memcached完全剖析 2011年0 ... -
关于文件的一些总结
2012-01-20 09:01 903关于文件的一些总结 2010年08月29日 Create ... -
low level I/O和stream I/O
2012-01-20 09:01 771low level I/O和stream I/O 201 ... -
充分利用 Xerces-C++,第 1 部分
2012-01-20 09:01 892充分利用 Xerces-C++,第 1 ... -
利用VBS脚本让qq永远在线
2012-01-19 14:05 807利用VBS脚本让qq永远在线 2011年06月07日 让 ... -
vbs脚本实例
2012-01-19 14:05 866vbs脚本实例 2011年02月28日 rem 结束QQ ... -
vbs 脚本没事测试玩
2012-01-19 14:05 655vbs 脚本没事测试玩 2011年03月27日 Set ... -
VBS脚本文件大全
2012-01-19 14:05 849VBS脚本文件大全 2011年05月24日 一、自动打开 ... -
自动下载并运行的VBS脚本代码[转载]
2012-01-19 14:04 1216自动下载并运行的VBS脚本代码[转载] 2012年01月15 ... -
解决系统提示:内存不能为“read”或"written"的办法
2012-01-17 03:55 683解决系统提示:内存不能为“read”或"writte ... -
内存不能为“read”或"written"的解决
2012-01-17 03:55 602内存不能为“read”或"written" ... -
0x08e629ab 指令引用的 0x0000000c内存不能为read 怎么解决11
2012-01-17 03:54 14150x08e629ab 指令引用的 0x00 ... -
内存不能为read和无法定位程序输入点 +@于动态链接库上
2012-01-17 03:54 1433内存不能为read和无法定位程序输入点 +@于动态链接库上 ... -
操作系统为XP 控制面板中的“添加删除程序”打不开,显示“rundll32.exe 遇到问题需要关闭。
2012-01-17 03:54 2661操作系统为XP 控制面板中的“添加删除程序”打不开,显示“ru ... -
基于C#的Socket开发快速入门
2012-01-16 02:42 629基于C#的Socket开发快速 ... -
C# Socket多线程编程实例
2012-01-16 02:42 576C# Socket多线程编程实例 ... -
C++ socket编程(tcp udp)
2012-01-16 02:42 637C++ socket编程(tcp udp) 2011 ... -
最基本的Socket编程C#
2012-01-16 02:41 586最基本的Socket编程C# 201 ...
相关推荐
C++中Socket网络编程实例详解 ...基于socket编程,基本上就是以下6个步骤: 1、socket()函数 2、bind()函数 3、listen()、connect()函数 4、accept()函数 5、read()、write()函数等 6、close()函数 下面直接
udp -socket编程,简单的了解linux下的socket编程流程
这是一个完整的源代码,经过测试完全通过,没有任何错误,可用于c语言综合实训课程的实践练习和参考代码。由从事教学经验的老师设计。
Visual C#2003,Dev C++4, Delphi7编写了Socket 的client 发数据给server的两端程序,并成功实现了不同种程序间的通讯
一个很好的练习Socket和多线程编程的例子,通过Socket,一个线程用于接收消息,另一个用于回复消息, 分为Server 和Customer 端!
两段源代码均在devC++下编译通过,并在广域网上测试过可以正常通讯聊天.使用这两段代码的初学者请注意,要在编译选项里加-lws2_32 -mthreads这两句哦.不然会提示link错误.
C++ socket通讯模块,简单,全面,值得学习.
c++写的多线程聊天程序,可以实现一对一的聊天,涉及的技术有c++网络编程,c++多线程,c++ STL, 压缩包里有服务器和客户端的源码,也有编译好的两个exe程序,环境使用vs2013编译的
Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言...
提炼出网络操作的基本功能,构造网络操作类,修改原有程序 " "【实验环境】 " "DEV C++ " "【实验作业】 " "网络操作类设计: " "class CSocketFrame " "{ " "public: " "int start_up(); " "int clean_up(); " ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...