`
rl203rl
  • 浏览: 20203 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Dev C++ 中socket编程

 
阅读更多

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;
  }
分享到:
评论

相关推荐

    C++中Socket网络编程实例详解

    C++中Socket网络编程实例详解 ...基于socket编程,基本上就是以下6个步骤: 1、socket()函数 2、bind()函数 3、listen()、connect()函数 4、accept()函数 5、read()、write()函数等 6、close()函数 下面直接

    udp -socket编程

    udp -socket编程,简单的了解linux下的socket编程流程

    C语言socket网络UDP编程例子源代码DevC++工程

    这是一个完整的源代码,经过测试完全通过,没有任何错误,可用于c语言综合实训课程的实践练习和参考代码。由从事教学经验的老师设计。

    C#,C++,Delphi的Socket编程

    Visual C#2003,Dev C++4, Delphi7编写了Socket 的client 发数据给server的两端程序,并成功实现了不同种程序间的通讯

    C++ Socket 控制台聊天工具源码

    一个很好的练习Socket和多线程编程的例子,通过Socket,一个线程用于接收消息,另一个用于回复消息, 分为Server 和Customer 端!

    socket编程示例--聊天软件服务器端+客户端

    两段源代码均在devC++下编译通过,并在广域网上测试过可以正常通讯聊天.使用这两段代码的初学者请注意,要在编译选项里加-lws2_32 -mthreads这两句哦.不然会提示link错误.

    ldcsaa-HP-Socket-dev.zip

    C++ socket通讯模块,简单,全面,值得学习.

    纯c++聊天服务器及客户端.zip

    c++写的多线程聊天程序,可以实现一对一的聊天,涉及的技术有c++网络编程,c++多线程,c++ STL, 压缩包里有服务器和客户端的源码,也有编译好的两个exe程序,环境使用vs2013编译的

    HP-Socket-dev.zip

    Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言...

    服务器回射程序设计.doc

    提炼出网络操作的基本功能,构造网络操作类,修改原有程序 " "【实验环境】 " "DEV C++ " "【实验作业】 " "网络操作类设计: " "class CSocketFrame " "{ " "public: " "int start_up(); " "int clean_up(); " ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

Global site tag (gtag.js) - Google Analytics