#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#define PORT 9995
void handl_client(char *buf)
{
int i;
for (i = 0; i < strlen(buf)-1; i++)
{
buf[i] += 'A' - 'a';
}
}
// 监听套接字
int init()
{
int conm_socket = socket(AF_INET, SOCK_DGRAM, 0);
if(-1 == conm_socket)
{
perror("创建套接字失败");
return -1;
}
struct sockaddr_in addr;
memset(&addr, 0, sizeof(struct sockaddr_in));
addr.sin_family = AF_INET; /* Internet地址族 */
addr.sin_port = htons(PORT); /* 端口号 */
addr.sin_addr.s_addr = htonl(INADDR_ANY); /* IP地址, 绑定本地的所有ip地址*/
int ret = bind(conm_socket, (const struct sockaddr *)&addr, sizeof(addr));
if(-1 == ret)
{
perror("绑定失败");
return -1;
}
return conm_socket;
}
int main(int argc, char **argv)
{
int conm_socket = init();
if (-1 == conm_socket)
return;
char buf[1024];
while (1)
{
struct sockaddr_in client_addr;
socklen_t len = sizeof(client_addr);
ssize_t ret = recvfrom(conm_socket, buf, 1023, 0, (struct sockaddr *)&client_addr, &len);// 收
buf[ret] = '\0';
handl_client(buf); // 处理
sendto(conm_socket, buf, ret, 0, (struct sockaddr *)&client_addr, len);// 回
}
return 0;
}
UDP服务器
最新推荐文章于 2024-04-15 09:14:04 发布