UDP server

 import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException; /**
* udpserver
* 监听端口 10001
* @author GXF
*
*/
public class UdpSocketServer {
private DatagramSocket serverSocket; public UdpSocketServer(int port){
init(port);
} public void init(int port){ InetSocketAddress serverSocketAddress = new InetSocketAddress( port);
try {
serverSocket = new DatagramSocket(serverSocketAddress);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //监听端口
public void startListen(){
byte buff[] = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(buff, buff.length);
while(true){
try {
serverSocket.receive(receivePacket);
String message = new String(buff, 0, receivePacket.getLength());
System.out.println("message from client = " + message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} public static void main(String args[]){
UdpSocketServer udpSocketServer = new UdpSocketServer(10001);
udpSocketServer.startListen();
}
}

UDP client

 import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketException;
import java.net.UnknownHostException; /**
* Udp客户端 DatagramSocket
* @author GXF
*
*/
public class UdpSocketClient {
//客户端套接字
private DatagramSocket clientSocket; //构造方法
public UdpSocketClient(String ip, int port){
init(ip, port);
} /**
* 初始化套接字
* @param ip
* @param port
*/
public void init(String ip, int port){
// try {
// InetAddress serverAddress = InetAddress.getByName(ip);
// InetSocketAddress serverSocketAddress = new InetSocketAddress(serverAddress, port);
try {
clientSocket = new DatagramSocket();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// } catch (UnknownHostException | SocketException e) {
// e.printStackTrace();
// }
} /**
* 使用UDP向服务器发送消息
* @param ip
* @param message
*/
public void sendMessage(String message){
byte buff[] = message.getBytes();
DatagramPacket packetToSend;
try {
packetToSend = new DatagramPacket(buff, buff.length, InetAddress.getByName("127.0.0.1"), 10002);
clientSocket.send(packetToSend); //发送数据包
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void main(String[] args) {
String serverIp = "127.0.0.1";
int port = 10001;
UdpSocketClient clientSocket = new UdpSocketClient(serverIp, port);
String message = "hahahahah";
clientSocket.sendMessage(message); } }

TCP server

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket; public class TcpServer {
private ServerSocket serverSocket; TcpServer(int port){
try {
serverSocket = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
} //开始监听端口
public void start(){
while(true){
try {
Socket clientSocket = serverSocket.accept();
InputStream is = clientSocket.getInputStream();
byte buff[] = new byte[1024];
int length = -1;
StringBuilder sb = new StringBuilder();
// while((length = is.read(buff)) > 0){
length = is.read(buff);
sb.append(new String(buff, 0, length));
// }//while
System.out.println("message received: " + sb.toString());
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
} }
} public static void main(String args[]){
int port = 10002;
TcpServer tcpServer = new TcpServer(port);
tcpServer.start();
}
}

Tcp client

 import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner; public class TcpClient {
private Socket socket;
private int port; private TcpClient(int port){
// try {
this.port = port;
// } catch (IOException e) {
// e.printStackTrace();
// }
} /**
* 发送消息
* @param message
*/
public void sendMessage(String message){
try {
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), port);
OutputStream os = socket.getOutputStream();
byte buff[] = message.getBytes();
os.write(buff);
os.flush();
socket.close();
} catch (IOException e) {
e.printStackTrace();
} } public void inputMessage(){
Scanner scanner = new Scanner(System.in);
while(true){
String message = scanner.nextLine();
sendMessage(message);
}
} public static void main(String[] args) {
int port = 10001;
TcpClient client = new TcpClient(port);
client.inputMessage();
} }

UDP client,UDP server, TCP server, TCP client的更多相关文章

  1. TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。

    一.TCP通信测试: 1)   创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...

  2. C# Socket TCP Server & Client & nodejs client

    要调试公司某项目里的一个功能,因为要准备测试环境,趁这个机会重温了一下Socket(全还给老师了 -_-#),做个备份. C# Server static void Main(string[] arg ...

  3. ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  4. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  5. DotNetty 实现 Modbus TCP 系列 (四) Client & Server

    本文已收录至:开源 DotNetty 实现的 Modbus TCP/IP 协议 Client public class ModbusClient { public string Ip { get; } ...

  6. swoole深入学习 2. tcp Server和tcp Client

    这节来学习Swoole最基础的Server和Client.会通过创建一个tcp Server来讲解. server <?php class Server { private $serv; pub ...

  7. TCP server和client的一些测试

    一.TCP server和client测试   socket设置 测试项/测试情景 send recv 测             server block           client bloc ...

  8. socket - socketserver - start TCP server

    前面提到如何使用socket模块启动tcpserver: 创建socket:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 绑定ip: ...

  9. Kcptun 是一个非常简单和快速的,基于KCP 协议的UDP 隧道,它可以将TCP 流转换为KCP+UDP 流

    本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而 ...

随机推荐

  1. java集合之Set接口

    Set集合通常不能记住元素添加的顺序,其他的操作和它的父接口基本相同.只是行为上有细微的差别,Set集合不能包含相同的元素.如果尝试添加相同的元素,调用add()方法将返回false,且新元素不能被加 ...

  2. qdu_组队训练(ABCFIJK)

    A - Second-price Auction Do you know second-price auction? It's very simple but famous. In a second- ...

  3. 能量项链 (区间DP)

    能量项链 (区间DP) 问题引入 能量项链 洛谷 P1063 思路 诸如此类不能线性规划的问题要用到区间DP,区间DP一般就是三层循环,第一层表示区间长度(本题即\(n\)),第二层枚举起点并根据第一 ...

  4. Apache Shiro(三)-登录认证和权限管理MD5加密

    md5 加密 在前面的例子里,用户密码是明文的,这样是有巨大风险的,一旦泄露,就不好了.所以,通常都会采用非对称加密,什么是非对称呢?就是不可逆的,而 md5 就是这样一个算法.如代码所示 123 用 ...

  5. os.path模块

    什么是os.path模块 该模块用于处理路径,我们知道python是一门跨平台的语言,二每种操作系统,文件路径是截然不同的,为了使程序可以在不同平台生正确运行,python提供了该模块,使用该模块可以 ...

  6. Linux误挂载到根目录出现问题!!!!!!!!!!!!!!!

    一.背景: 因根目录/空间不大,故而想将另一硬盘挂载到根目录下(后发现此想法很是幼稚): 二.过程: 1.成功输入命令挂载后,发现出现/上被挂了两个东西,且/下剩余空间还是原来一样大,才发现大错特错: ...

  7. PIE SDK专题制图另存模板

    1.功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷 ...

  8. Linux-密码复杂度限制

    前言 设置一个复杂的密码,可以有效的提升系统的安全性.在Linux上有PAM(Pluggable Authentication Modules)里面有一个pam_cracklib.so来控制密码的复杂 ...

  9. C++指针传递和引用传递的区别 (转载整理)

    区别1:指针传递和引用传递是以不同的方式实现相同的效果,但是指针传递的本质还是值传递,只是传递的值是地址. 就拿 交换两个数的函数来举例: // 指针传递 void swap(int * val1, ...

  10. oracle12C--DG FAR SYNC 部署(前提为搭建好12C的DG)

    <<往期12CDG搭建>> 一,理解同步异步模式 01, 使用LGWR 进程的SYNC 方式 1)Primary Database 产生的Redo 日志要同时写到日志文件和网络 ...