udp socket客户端和udp服务端程序示例分享_C 语言

Udp Socket

复制代码 代码如下:

#include <WinSock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
int main()
{
// initial socket library
WORD wVerisonRequested;
WSADATA wsaData;
int err;
wVerisonRequested = MAKEWORD(1, 1);
err = WSAStartup(wVerisonRequested, &wsaData);
if (err != 0)
{
return -1;
}
//if (LOBYTE(wsaData.wVersion) != 1 ||
//HIBYTE(wsaData.wHighVersion) != 1)
//{
//WSACleanup();
//return -1;
//}

// create socket
SOCKET sockServer = socket(AF_INET, SOCK_DGRAM, 0);

// bind socket
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(6000);
bind(sockServer, (SOCKADDR *)&addrServer, sizeof(addrServer));

// receive
SOCKADDR_IN addrClient;
int len = sizeof(addrClient);
char recvBuf[100];
recvfrom(sockServer, recvBuf, 100, 0, (SOCKADDR *)&addrClient, &len);
printf("%s", recvBuf);

// close socket
closesocket(sockServer);
WSACleanup();
}

Udp Client

复制代码 代码如下:

#include <WinSock2.h>
#include <stdio.h>

#pragma comment(lib, "ws2_32.lib")

int main()
{
// initial socket library
WORD wVerisonRequested;
WSADATA wsaData;
int err;
wVerisonRequested = MAKEWORD(1, 1);
err = WSAStartup(wVerisonRequested, &wsaData);
if (err != 0)
{
return -1;
}
//if (LOBYTE(wsaData.wVersion) != 1 ||
//HIBYTE(wsaData.wHighVersion) != 1)
//{
//WSACleanup();
//return -1;
//}

// create socket
SOCKET sockClient = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(6000);

// send
char sendBuf[100] = "this is lisi\n";
sendto(sockClient, sendBuf, strlen(sendBuf)+1,0, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));

// close connection socket
closesocket(sockClient);

// clean socket library
WSACleanup();
}

时间: 2024-09-08 21:25:55

udp socket客户端和udp服务端程序示例分享_C 语言的相关文章

请问Socket客户端如何像服务端一样自动监听远程终端是否连接上

问题描述 今天偶然发现Socket服务端可以通过Socket.Accept();自动检测远程终端是否连接,即使网络中断也不会报异常,当网络恢复后又自动连接上,不用做任何判断.抛异常和显示重连.请问客户端如何像服务端一样实现上述功能? 解决方案 解决方案二: 解决方案三:参考你需要的解决方案四:Accept是等待"任意"客户端连接.如果网络中断,自然就没有客户端连接.此时它抛异常干什么?人家根本没有的逻辑,你硬说它有那个"抛异常.显示重联",是何道理?解决方案五:引用

tcp socket客户端和服务端示例分享_C 语言

以下是tcp socket客户端和服务端源码,代码简单大家参考使用吧 Tcp Server 复制代码 代码如下: #include <WinSock2.h>#include <stdio.h>#pragma comment(lib, "ws2_32.lib")int main(){// initial socket libraryWORD wVerisonRequested;WSADATA wsaData;int err;wVerisonRequested =

VC++基于Dx实现的截图程序示例代码_C 语言

本文所述的程序示例为VC++图象特效的截图示例,需要DirectX 3.0以上版,代码中的GetScreen函数是本截图程序的关键.运行这个程序可用Esc键结束.代码中需要ddutil.h与ddutil.cpp文件,请自行下载添加.关于InitDDraw()函数,功能是初始化DirectDraw环境,创建换页链(主页面,一个后台缓冲区),以及创建一个定时器. 具体的功能代码如下: #include <windows.h> #include <windowsx.h> #include

udp-UDP跨路由器通信,客户端无法收到服务端发送的UDP包

问题描述 UDP跨路由器通信,客户端无法收到服务端发送的UDP包 本人新手,正做一个UDP跨路由通信项目,遇如下问题:服务端(192.168.0.85)与路由器在同一网段,客户端(192.168.1.103)在该路由器组成的局域网内,现服务端可以接收到客户端发送的UDP包,但客户端无法收到服务端的UDP包.请问客户端发送的UDP包需怎样设置(IP/端口)?(PS:服务端与客服端在同一局域网内是可以UDP通信的) 以下是我的UDP设置客户端--目标IP:192.168.0.85----目标端口10

epoll异步服务端程序,客户端采用多线程访问,服务端总是返回errno 9和107

问题描述 epoll异步服务端程序,客户端采用多线程访问,服务端总是返回errno 9和107 #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX_EVENTS 65535 #define SERVER_PORT 8887 #defi

android-关于socket编程 客户端不能接受服务端信息问题

问题描述 关于socket编程 客户端不能接受服务端信息问题 private void send() { try { tvGetContent.append("我说:" + etSendContent.getText().toString() + "n"); writer.write(etSendContent.getText().toString() + "n"); writer.flush(); etSendContent.setText(&

用socket编写的客户端和服务端,客户端可以通过服务端的域名发送消息吗

问题描述 用socket编写的客户端和服务端,客户端可以通过服务端的域名发送消息吗 本来要做GPRS通信模块发送命令到服务器端,服务器端根据命令做出反应,如果命令有需要还要返回数据到Gprs模块.网上搜怎么做,都是说用sokect做,我需要的是GPRS模块通过服务器的域名发送消息到服务端. 解决方案 如果是socket的话,gethostbyname是可以将域名转换成ip地址的 解决方案二: Linux socket客户端和服务端socket通讯 客户端和服务端socket的客户端和服务端的编程

C#TCP通信时模拟客户端断开后服务端的CPU使用率从45%上升到80%-90%

问题描述 我使用C#的TCPlistener写了一个TCP服务端的程序,用来向连接到服务端的客户端发送数据的,客户端发送不同的请求就发送相应的数据,没有请求数据就什么也不发送:发送的数据是从另一个端口接收到的UDP的报文解析后的数据服务端程序包括接收及解析UDP报文,和TCPlistener监听(有连接请求就建立一个线程为这个连接服务,连接断开就终止线程)现在当服务端程序启动,就开始接收UDP报文并解析,如果有连接请求,就创建线程并为连接服务,当模拟器客户端断开连接,CPU使用率就会迅速增长到8

这段java-socket服务端程序是否稳定?有哪里可以改进?

问题描述 面对socket客户端每分钟发送一次信息,这段java-socket服务端程序是否稳定?有哪里可以改进?package test;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.InetAddr