⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpclient.c

📁 这是VxWorks下的Socket UDP通信的源码
💻 C
字号:
/* udpClient.c - UDP client demo */ 
 
/* 
DESCRIPTION 
This file contains the client-side of the vxWorks UDP demo code. 
The demo code demonstrates the usage of several BSD 4.4-style 
socket routine calls. 
*/ 

/* Author - LiuCY */
 
/* includes */ 
 
#include "vxWorks.h" 
#include "sockLib.h" 
#include "inetLib.h" 
#include "stdioLib.h" 
#include "strLib.h" 
#include "hostLib.h" 
#include "ioLib.h" 
#include "udpHeader.h" 
 
/**************************************************************************** 
* 
* udpClient - send a message to a server over a UDP socket 
* 
* This routine sends a user-provided message to a server over a UDP socket. 
* Optionally, this routine can request that the server display the message. 
* This routine may be invoked as follows: 
*       -> udpClient()
*       value = 0 = 0x0 
* 
* RETURNS: OK, or ERROR if the message could not be sent to the server. 
*/ 
 
STATUS udpClient(void) 
    { 
    struct request      myRequest;     /* request to send to server */ 
    struct sockaddr_in  serverAddr;    /* server's socket address */ 
    char                display;       /* if TRUE, server prints message */ 
    int                 sockAddrSize;  /* size of socket address structure */ 
    int                 sFd;           /* socket file descriptor */  
    int                 mlen;          /* length of message */  
    char *              serverName;    /* name or IP address of server */ 

    serverName = "192.168.0.194";

    /* create client's socket */ 
 
    if ((sFd = socket (AF_INET, SOCK_DGRAM, 0)) == ERROR) 
        { 
        perror ("socket"); 
        return (ERROR); 
        } 
 
    /* explicit bind not required - local port number is dynamic */ 
 
    /* build server socket address */ 
 
    sockAddrSize = sizeof (struct sockaddr_in); 
    bzero ((char *) &serverAddr, sockAddrSize); 
    serverAddr.sin_len = (u_char) sockAddrSize; 
    serverAddr.sin_family = AF_INET; 
    serverAddr.sin_port = htons (SERVER_PORT_NUM); 
 
    if (((serverAddr.sin_addr.s_addr = inet_addr (serverName)) == ERROR) && 
        ((serverAddr.sin_addr.s_addr = hostGetByName (serverName)) == ERROR)) 
        { 
        perror ("unknown server name"); 
        close (sFd); 
        return (ERROR); 
        } 
 
    /* build request, prompting user for message */ 
 
    strcpy(myRequest.message,"Hello Word!\r\n");
    myRequest.display = TRUE; 
  
 
    /* send request to server */ 
 
    if (sendto (sFd, (caddr_t) &myRequest, sizeof (myRequest), 0, 
        (struct sockaddr *) &serverAddr, sockAddrSize) == ERROR) 
        { 
        perror ("sendto"); 
        close (sFd); 
        return (ERROR); 
        } 
 
    close (sFd); 
    return (OK); 
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -