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. }

TCP/IP通信和UDP通信之间的区别

首先,TCP/IP 和UDP最大的区别就是:TCP/IP是面向连接的,UDP是非面向连接的。通俗一点说就是:TCP/IP管发管到,UDP管发不管到。因此,在安全性方面来说,TCP/IP更具有优越性。 ...
  • qq_28775437
  • qq_28775437
  • 2017年06月16日 17:18
  • 427

VC中UDP通信中记录对方的IP地址和端口号

struct sockaddr_in addr; int addr_len = sizeof(struct sockaddr_in); char tempSocketReceive[MAXDATA...
  • shihui512
  • shihui512
  • 2015年01月19日 22:43
  • 1171

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

VoteMsg.java  package com.tcpip; /** * 投票信息 * @author Administrator * */ public class VoteMsg ...
  • kuangfengbuyi
  • kuangfengbuyi
  • 2014年05月29日 17:24
  • 1287

ue4局域网加入流程

本文简单分析一下ue4在局域网内加入游戏的流程。 ue4游戏中,会列出局域网内所有服务器的基本信息,玩家可以选择一个加入游戏。 加入游戏使用udp协议,具体协议格式如下: 字节1:版本号 字节...
  • XIAOZHI0999
  • XIAOZHI0999
  • 2016年05月20日 19:41
  • 2506

基于Delphi API写的UDP通讯类

转载地址:http://www.codefans.net/articles/159.shtml unit TUdp_Class; interface uses Classes,Win...
  • liwb1987
  • liwb1987
  • 2014年07月31日 16:46
  • 773

LabVIEW使用UDP组播发送数据

最近在架构下位机程序时,为了满足其他用户程序随时能使用下位机所采集的数据, 考虑到数据接口的通用性和懒人(少编程)的原则,增加了UDP的通信方式,由于网络中还有其他设备也使用了UDP通信,为避免网络带...
  • ap0108220
  • ap0108220
  • 2016年12月22日 12:22
  • 1016

linux UDP通讯 获取源IP地址端口信息

2269 /* 2270 * 获取源IP地址端口 2271 */ 2272 #if 1 2273 void socket_ntop(struct sockaddr *sa, char ip...
  • hailmy
  • hailmy
  • 2014年06月12日 12:20
  • 1992

C# 中UDP通信时 发送数据并需要事先Bind IP地址

C#中进行UDP通信时,在发送数据的时候,如果不事先Bind一个IP地址,就会随机分配一个地址进行发送数据。发送端class Program { static Socket c...
  • edjoker2
  • edjoker2
  • 2017年12月21日 15:42
  • 112

vb.net 模拟UDP通信

Imports System.Net Imports System.Text.Encoding Public Class Form1 Dim publisher As New Sockets...
  • a771948524
  • a771948524
  • 2013年08月14日 15:45
  • 1997

[C#]UDP通讯

原创文章,欢迎转载。转载请注明:转载自 祥的博客原文链接:http://blog.csdn.net/humanking7/article/details/51024884UDP的作用不用多说,在C#中...
  • humanking7
  • humanking7
  • 2016年03月31日 22:00
  • 2244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:window API(UDP/IP)通讯
举报原因:
原因补充:

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