UDP socket 的使用 (part 2)
2008-02-03 15:36
141 查看
接上一篇,客户端部分的代码:
附:转贴或引用请注明出处!
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock.h> const int SERVERPORT= 4950; // the port users will be connecting to const int MYPORT=4900; // the local port #define SERVER_IP "192.168.136.93" void init_win_socket(); void clean_win_socket(); void close_win_socket(SOCKET &soc_handle); //this socket is intend to use as a simple client int main() { puts("start main client..."); int numBytes=0; int ret=0; char sendBuf[]="Hello, this is used to test UDP socket!/0"; //init windows socket init_win_socket(); SOCKET local_sock_fd; struct sockaddr_in main_soc_addr; struct sockaddr_in client_soc_addr; //create the client socket local_sock_fd = socket(AF_INET, SOCK_DGRAM, 0); if(local_sock_fd ==-1) { puts("CREATE SOCK ERROR:"); } //configure the client's local socket addr client_soc_addr.sin_family = AF_INET; client_soc_addr.sin_port = htons(MYPORT); client_soc_addr.sin_addr.s_addr = htonl(INADDR_ANY); memset(client_soc_addr.sin_zero, '/0', sizeof(client_soc_addr.sin_zero)); //bind the socket ret = bind(local_sock_fd, (struct sockaddr *)&client_soc_addr, sizeof(client_soc_addr)); if(ret==-1) { puts("BIND SOCK ERROR:"); } //configure the client's server socket addr main_soc_addr.sin_family = AF_INET; main_soc_addr.sin_port = htons(SERVERPORT); main_soc_addr.sin_addr.s_addr = inet_addr(SERVER_IP); memset(main_soc_addr.sin_zero, '/0', sizeof(main_soc_addr.sin_zero)); //now,we can send data to the server numBytes =sendto(local_sock_fd, sendBuf, strlen(sendBuf), 0, (struct sockaddr*)&main_soc_addr, sizeof(sockaddr)); if(numBytes ==-1) { puts("SEND DATA ERROR:"); } //close and clean the windows sockets close_win_socket(local_sock_fd); clean_win_socket(); puts("any key to continue..."); getchar(); return 0; } //init windows socket void init_win_socket() { WSADATA wdata; if(WSAStartup(MAKEWORD(2,2), &wdata)!=0) { puts("WAS ERROR:"); } } //close windows socket void close_win_socket(SOCKET &soc_handle) { if(soc_handle>0) { closesocket(soc_handle); } } //clean windows socket void clean_win_socket() { WSACleanup(); }
附:转贴或引用请注明出处!
相关文章推荐
- UDP socket 的使用 (part 1)
- QT 使用QUdpSocket QUdpServer UDP 建立客户端与服务器端
- 使用 Python 的 Socket 模块构建一个 UDP 扫描工具
- UDP socket编程中使用connect
- C# 使用 SocketAsyncEventArgs 实现UdpSocket系列
- c++ udp的socket通信使用jsoncpp传输
- (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
- UDP socket也可以使用connect系统调用
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- Linux Socket网络编程 分别使用TCP协议 和 UDP协议
- Socket编程-UdpClient的使用
- android 使用UDP发送数据 DatagramSocket 创建对象为null
- GCDAsyncUdpSocket的简单使用
- (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
- Socket UDP通信之 AsyncUdpSocket的使用方法及二次封装
- [转] 最简单的使用UDP通信的Python Socket例子
- 使用DatagramSocket发送、接收数据(Socket之UDP套接字)
- Linux中使用C语言实现基于UDP协议的Socket通信示例
- linux udp协议服务器,客户端socket使用
- 嵌入式 (unix domain socket本地套接字)使用udp发送>=128K的消息会报ENOBUFS的错误