UDP Server

//UDP服务器端程序,可以接受广播,不可接受多播,多播需要join播地址
@Override
public void run() {
while (true) {

try {
DatagramSocket server = new DatagramSocket(5050);
byte[] recvBuf = new byte[1024];
DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length);

while (true) {
//接收数据
server.receive(recvPacket);
String recvStr = new String(recvPacket.getData(), 0, recvPacket.getLength());
iListenerResutlt.onRecieve(recvStr);
//回复数据
int port = recvPacket.getPort();
InetAddress addr = recvPacket.getAddress();
String sendStr =recvStr;
byte[] sendBuf;
sendBuf = sendStr.getBytes("gbk");
DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length, addr, port);
server.send(sendPacket);

}
} catch (Exception e) {
e.printStackTrace();
}
}
}

时间: 2024-10-13 23:54:41

UDP Server的相关文章

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($

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

Golang 高性能UDP Server实现

通过Goroutine实现UDP消息并发处理 package main import ( "net" "fmt" "os" ) // 限制goroutine数量 var limitChan = make(chan bool, 1000) // UDP goroutine 实现并发读取UDP数据 func udpProcess(conn *net.UDPConn) { // 最大读取数据大小 data := make([]byte, 1024) n

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 socka

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() {

SpringBoot 集成Netty实现UDP Server

注:ApplicationRunner 接口是在容器启动成功后的最后一步回调(类似开机自启动). UDPServer package com.vmware.vCenterEvent.netty; import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDat

[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 *

Socket tips: UDP Echo service - Server code

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <time.h> #define BUFFER_LENGTH 1024 void ReverseMessage(char buffer[], ssiz