c udp server client demo --待调试

server.c

//
// Created by gxf on 2020/2/7.
//

#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>

#define BUFFSIZE 1024

int main(){
    int serverSocketFd = socket(AF_INET, SOCK_DGRAM, 0);
    struct sockaddr_in serverAddr;
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(1234);
    serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

    int ret = bind(serverSocketFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
    if (ret) {
        fprintf(stderr, "bind fail");
        exit(1);
    }

    struct sockaddr_in cliAddr;
    int cliAddrLen = sizeof(cliAddr);
    while (1) {
        char buff[BUFFSIZE];
        int addrLen = sizeof(cliAddr);
        int readCount = recvfrom(serverSocketFd, buff, BUFFSIZE, 0, (struct sockaddr*)&cliAddr, &addrLen);
        buff[readCount] = ‘\0‘;
        printf("Receive from client:%s\n", buff);
        sendto(serverSocketFd, buff, BUFFSIZE, 0, (struct sockaddr *)&cliAddr, sizeof(addrLen));
    }

    return 0;
}

  client.c

//
// Created by gxf on 2020/2/7.
//

#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define BUFSIZE 1024

int main(){
    int clientSocketFd = socket(AF_INET, SOCK_DGRAM, 0);
    struct sockaddr_in serverAddr;
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(1234);
    serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

    int addrLen = sizeof(serverAddr);
    while (1) {
        char buff[BUFSIZE];
        printf("Enter msg send to server:");
        scanf("%s", buff);

        sendto(clientSocketFd, buff, BUFSIZE, 0, (struct sockaddr*)&serverAddr, &addrLen);
        int readCount = recvfrom(clientSocketFd, buff, BUFSIZE, 0, (struct sockaddr*)&serverAddr, &addrLen);
        buff[readCount] = ‘\0‘;
        printf("Receive from server:%s\n", buff);
    }

    return 0;
}

  

原文地址:https://www.cnblogs.com/luckygxf/p/12274979.html

时间: 2024-10-14 19:49:04

c udp server client demo --待调试的相关文章

c tcp sockt server client -- demo

server.c // // Created by gxf on 2020/2/6. // #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <stdio.h> #include <unistd.h> #include <pthread.h> #define BUFFSIZE 1024 void dealClientConnecti

linux+udp+server+client

一.客户端 #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<unistd.h> #include<stdio.h> #include<errno.h> #include<time.h> #include<string.h> void main() {

[linux]小程序:UDP下client向server传输多个字符串

还是实验的作业~ 一共需要两个文件,这是client 1 #include <stdio.h> 2 #include <sys/socket.h> 3 #include <arpa/inet.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <unistd.h> 7 8 #define ECHOMAX 255 9 10 int main(int argc, char *

uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clientport设置为0了,我通过将原始数据包中的clientport保存下来,而且在发送的时候将clientport替换为指定的port,发送完毕之后又设置为0,这样就实现了向随意clientport发送数据. uip.c if(uip_udp_conn->lport != 0 && UDP

epoll简介 与 UDP server的实现

Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率. 简介:epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为: 它会复用文件描述符集合来传递结果, 而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因:

php创建udp Server

<?php//服务器信息$server = 'udp://127.0.0.1:7002';//----UDP Server$msgEof = "\n";$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND);if (!$socket) { die($errstr.$errno);} do { //接收客户端发来的信息 $inMsg = stream_socket_recvfrom($

SQL SERVER ENTERPRISE EDITION-CORE VS SERVER+CAL – DEMO ON DIFFERENCES

SQL SERVER ENTERPRISE EDITION-CORE VS SERVER+CAL – DEMO ON DIFFERENCES DHARMENDRA KESHARIAugust 03, 2018SQL LINUX, SQL WINDOWS0 comments In this blog, I am NOT going to discuss the SQL Server licensing model. If you are looking for that information,

用XMLRPC开服务进行server/client通信

本文讲一下如何用python的xmlrpc开服务,进行server/client的通信. 应用场景:1)需多client访问应用程序给予应答情况--网页服务:  2)数据极大,希望加载一次,后面只用方法调用 解决方案:  开两个服务,一个数据服务,一个网络服务:  数据服务端加载数据,网络服务端调用数据,并将结果显示在网络服务中:  外部调用网络服务返回结果: 应用工具:xmlrpc,本文中以python 2.7.3的xmlrpclib为例,其他语言也有相应接口 下面分别说明. 1. 数据端 在

NetMQ(ZeroMQ)Client =&gt; Server =&gt; Client 模式的实现

ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库.它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker).该库设计成常见的套接字风格的API. ZeroMQ是由iMatix公司和大量贡献者组成的社群共同开发的.ZeroQ通过许多第三方软件支持大部分流行的编程语言 .类库提供一些套接字(对传统Berkeley套接字和Unix domain socket的泛化),每一个套接字可