博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java TCP&UDP socket编程示例
阅读量:2432 次
发布时间:2019-05-10

本文共 3326 字,大约阅读时间需要 11 分钟。

在《计算机网络-自顶向下方法 》第四版的2.7 2.8两节的TCP和UDP套接字编程练习中有下面的源码:

< 一>UDP socket

package UDP;

import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
BufferedReader infromuser = new BufferedReader(new InputStreamReader(System.in));//定义一个缓冲字符输入流,以子结转字符为参数构造
DatagramSocket clientSocket = new DatagramSocket();//创建套接字
InetAddress ipaddress = InetAddress.getByName("localhost");//获取主机ip地址
byte[] sendData = new byte[1024];
byte[] recievedData = new byte[1024];
String sentence = infromuser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendpacket = new DatagramPacket(sendData,sendData.length,ipaddress,9876);//生成数据包
clientSocket.send(sendpacket);
DatagramPacket recievedpacket = new DatagramPacket(recievedData,recievedData.length);//从主机接受数据包
clientSocket.receive(recievedpacket);
String modifiedsentence = new String(recievedpacket.getData());
System.out.println(modifiedsentence);
clientSocket.close();
}
}

package UDP;

import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DatagramSocket serversocket = new DatagramSocket(9876);
byte[] recievedata = new byte[1024];
byte[] senddata = new byte[1024];
while(true)
{
DatagramPacket recievedpPacket = new DatagramPacket(recievedata,recievedata.length);
serversocket.receive(recievedpPacket);
String sentence = new String(recievedpPacket.getData());
InetAddress ipaddress = recievedpPacket.getAddress();
int port = recievedpPacket.getPort();
String capitalizedsentence = sentence.toUpperCase();
senddata = capitalizedsentence.getBytes();
DatagramPacket sendpacket = new DatagramPacket(senddata, senddata.length,ipaddress,port);
serversocket.send(sendpacket);
}
}
}

< 二> TCP socket

package socket;

import  java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
String clientSentence;
String  capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while (true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader infromclient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
System.out.println("accept \n");
DataOutputStream outToclient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence =infromclient.readLine();
System.out.println("get client string "+ clientSentence+"\n");
capitalizedSentence = clientSentence.toUpperCase()+"\n";
outToclient.writeBytes(capitalizedSentence);
}
}
}

package socket;

import java.io.*;
import java.net.*;
public class CLient0 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String hostname = "localhost";
int portNUM = 6789;
String sentence ;
String modifiedStentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientsocket =  new Socket(hostname,portNUM);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
DataOutputStream outToserver = new DataOutputStream(clientsocket.getOutputStream());
sentence = inFromUser.readLine();
outToserver.writeBytes(sentence+"\n");
modifiedStentence = inFromServer.readLine();
System.out.println("FROM SERVER:"+modifiedStentence);
clientsocket.close();
}
}

/

/

转载地址:http://lgtmb.baihongyu.com/

你可能感兴趣的文章
以不一样的视角看物联网协议
查看>>
JavaScriptCore全面解析 (下篇)
查看>>
嵌入式操作系统与物联网演进之路
查看>>
苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
查看>>
Python 玩转物联网之 Micropython GPIO IRQ 处理
查看>>
移动周刊第 188 期:Android 安全性要点与规范核心详析
查看>>
手机为基础的 IoT 布局已经失效,下一代操作系统是什么模样?
查看>>
无线传感器网络使用指南
查看>>
《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
查看>>
深度对话微软,解读 HoloLens 技术设计细节
查看>>
移动周刊第 191 期:如何看待 Kotlin 成为 Android 官方支持开发语言?
查看>>
物联网浪潮之下,前端工程师如何迎刃而上?
查看>>
从端到云——工业物联网项目全栈快速开发
查看>>
LoRa vs NB-IOT:哪个物联网标准更具优势?
查看>>
有钱 Python,没钱 PHP,编程语言也嫌贫爱富
查看>>
Docker是啥?容器变革的火花?
查看>>
假如从餐饮店的角度来看架构…
查看>>
这个充电宝太黑科技了,又小又不用自己带线,长见识了~
查看>>
HDC.2019后再发力,AppGallery Connect服务新升级
查看>>
网易云音乐热评的规律,44万条数据告诉你
查看>>