window API(UDP/IP)通讯

原创 2005年05月25日 14:16:00


SERVER端程序:

  1. #include <winsock2.h>
  2. #include <stdio.h>
  3. #pragma comment(lib,"Ws2_32")
  4. void main()
  5. {
  6.  SOCKET socket2;
  7.  WSADATA wsd;
  8.  
  9.  if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
  10.  {
  11.   printf("failed to load winsock library!/n");
  12.   return;
  13.  }
  14.  struct sockaddr_in local;
  15.  struct sockaddr_in from;
  16.  WORD port = 1000;
  17.  int fromlen =sizeof(from);
  18.  local.sin_family=AF_INET;
  19.  local.sin_port=htons(1000);             ///监听端口
  20.  local.sin_addr.s_addr=INADDR_ANY;       ///本机
  21.  socket2=socket(AF_INET,SOCK_DGRAM,0);
  22.  bind(socket2,(struct sockaddr*)&local,sizeof local);
  23.  while (1)
  24.  {
  25.   char buffer[1024]="/0";
  26.   printf("waiting for message from others-------------/n");
  27.   int state = recvfrom(socket2,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen);
  28.   if (state!=SOCKET_ERROR)
  29.   {
  30.    printf("Received datagram from %s--%s/n",inet_ntoa(from.sin_addr),buffer);
  31.    ////给cilent发信息
  32.    strcpy(buffer,"server send to client");
  33.    sendto(socket2,buffer,sizeof buffer,0,(struct sockaddr*)&from,fromlen);
  34.    
  35.   }
  36.   else {
  37.    printf("error:%d/n",WSAGetLastError());
  38.   }
  39.   Sleep(500);
  40.  }
  41.  closesocket(socket2);
  42. }
CLIENT端程序:
  1. #include <winsock2.h>
  2. #include <stdio.h>
  3. #pragma comment(lib,"Ws2_32")
  4. void main()
  5. {
  6.  SOCKET socket1;
  7.  WSADATA wsd;
  8.  if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
  9.  {
  10.   printf("failed to load winsock library!/n");
  11.   exit(0);
  12.  }
  13.  struct sockaddr_in server;
  14.  int len =sizeof(server);
  15.  server.sin_family=AF_INET;
  16.  server.sin_port=htons(1000);                      ///server的监听端口,和server端设置要一致
  17.  server.sin_addr.s_addr=inet_addr("192.168.0.105"); ///server的地址,如果是本机运行就是本机的ip
  18.  socket1=socket(AF_INET,SOCK_DGRAM,0);
  19.  if(socket1 == INVALID_SOCKET)
  20.   printf("failed");
  21.  while (1)
  22.  {
  23.   char buffer[1024]="/0";
  24.   printf("input message/n");
  25.   scanf("%s",buffer);
  26.   if (strcmp(buffer,"bye")==0)
  27.    break;
  28.   if (sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&server,len)!=SOCKET_ERROR)
  29.   { 
  30.    if (recvfrom(socket1,buffer,sizeof  buffer, 0,(struct sockaddr*)&server,&len) != SOCKET_ERROR)
  31.     printf("rece from server:%s/n",buffer);
  32.    else
  33.     printf("recv():  failed!/n");
  34.   }
  35.   else
  36.    exit(0);
  37.  }
  38.  closesocket(socket1);
  39. }

(java)在两台已知Ip的电脑间,使用UDP协议进行通讯

发送的代码:import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; ...

java TCP/IP Socket编程-----基本套接字-----UDP通讯-----笔记6

概述: UDP协议提供了一种不同于TCP协议的端到端服务。实际上UDP协议只实现两个功能: 1)在IP协议的基础上添加了另一层地址(端口), 2)对数据传输过程中可能产生的数据错误进行了检测,并...

自定义的投票协议的通讯(tcp/ip 与 udp示例)

VoteMsg.java  package com.tcpip; /** * 投票信息 * @author Administrator * */ public class VoteMsg ...

基于Delphi API写的UDP通讯类

转载地址:http://www.codefans.net/articles/159.shtml unit TUdp_Class; interface uses Classes,Win...

JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

JAVA之旅(三十二)——JAVA网络请求 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例,我们暂时不讲了,我们直接来重点吧,关于JAVA的网络请求是怎么实现的?当然...

IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用一.JAVA网络请求概述关于JAVA的网络请求,我们大致的可以分为以下几个分类 OSI TCP/IP 网络通讯 I...

UDP通信window窗口化的源程序

  • 2009年08月10日 20:22
  • 1.55MB
  • 下载

VMWare下Linux虚拟机与Window主机的网络设置与通讯

首先安装好vmware以及linux系统,这就不多说了,安装好后,开始进行相关网络的设置工作。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:window API(UDP/IP)通讯
举报原因:
原因补充:

(最多只允许输入30个字)