tcp socket编程 java_JAVA TCP Socket编程 计算题
展开全部
服务器端CalculateServer.java:package serverModule;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class CalculateServer {
public static void main(String [] args){
CalculateServer calculateServer=new CalculateServer();
try {
calculateServer.startServer();
} catch (Exception e) {
e.printStackTrace();
System.out.println("服务器出错!");
}
}
//把输入的字符串转换成float数组
public float [] convertToArray(String inputString){
String numberString=inputString.substring(inputString.indexOf('[')+1,inputString.indexOf(']'));
String [] stringArray=numberString.split(",");
float [] numberArray=new float[2];
for(int i=0;i<2;i++){
try {
numberArray[i]=Float.parseFloat(stringArray[i]);
}catch (NumberFormatException e){
System.out.println("数字错误!");
return null;
}
}
return numberArray;
}
//计算数组结果32313133353236313431303231363533e59b9ee7ad9431333337373561
public String getResultString(float [] numberArray){
float[] result=new float[4];
result[0]=numberArray[0]+numberArray[1];
result[1]=numberArray[0]=numberArray[1];
result[2]=numberArray[0]*numberArray[1];
result[3]=numberArray[0]/numberArray[1];
String resultString=String.format("[%1$s,%2$s,%3$s,%4$s]",result[0],result[1],result[2],result[3]);
return resultString;
}
//socketServer
public void startServer() throws Exception{
ServerSocket serverSocket= null;
PrintStream out=null;
BufferedReader in=null;
Socket socketObj=null;
try {
serverSocket = new ServerSocket(1888);
System.out.println("服务器启动...");
socketObj=serverSocket.accept();
out=new PrintStream(socketObj.getOutputStream());
in=new BufferedReader(new InputStreamReader(socketObj.getInputStream()));
} catch (IOException e) {
System.out.println("服务器启动失败!");
}
boolean flag=true;
CalculateServer cs=new CalculateServer();
try {
while (flag){
String inputString=in.readLine();
System.out.println("接收到数据:"+inputString);
if(inputString.equals("bye")){
flag=false;
continue;
}
if(inputString==null||inputString.length()<5) {
out.println("你的输入有误 !");
}else {
out.println(cs.getResultString(cs.convertToArray(inputString)));
}
}
}catch (Exception e){
out.println("数据输入有误!");
}finally {
out.close();
in.close();
socketObj.close();
serverSocket.close();
}
}
}
客户端CalculateClient.javapackage clientModule;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
public class CalculateClient {
public static void main(String [] args){
CalculateClient calculateClient=new CalculateClient();
try {
calculateClient.startClient();
} catch (Exception e) {
System.out.println("启动失败!");
}
}
public void startClient () throws Exception{
Socket socketObj=new Socket("localhost",1888);
PrintStream out=null;
BufferedReader in=null;
out=new PrintStream(socketObj.getOutputStream());
in=new BufferedReader(new InputStreamReader(socketObj.getInputStream()));
BufferedReader localInput=null;
localInput=new BufferedReader(new InputStreamReader(System.in));
boolean flag=true;
while (flag) {
System.out.println("请输入两个数字,格式为[number1,number2],输入bye则退出:");
String inputString = localInput.readLine();
out.println(inputString);
if(inputString.equals("bye")){
flag=false;
}else{
String input=in.readLine();
System.out.println("服务器返回结果为:");
System.out.println(input);
}
}
out.close();
in.close();
localInput.close();
socketObj.close();
}
}
tcp socket编程 java_JAVA TCP Socket编程 计算题相关推荐
- tcp长连接java_JAVA TCP长连接
做了一个指纹门锁,需要用TCP长连接进行服务端和门锁间的数据通信. 目前JAVA写socket服务端,门锁连接JAVA服务端. 服务端开了一个线程在监听门锁发来的数据(此处必须实时监听数据) 在监听的 ...
- socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...
- 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client
1 Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...
- Python3之socket编程(TCP/UDP,粘包问题,数据传输、文件上传)
一.socket的定义 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后 ...
- socket通信需要网线连接吗_从socket到TCP协议,透彻理解网络编程
进行程序开发的同学,无论Web前端开发.Web后端开发,还是搜索引擎和大数据,几乎所有的开发领域都会涉及到网络编程.比如我们进行Web服务端开发,除了Web协议本身依赖网络外,通常还需要连接数据库,而 ...
- python socket 主动断开_Python网络编程tcp详解(基础篇十四)
网络编程tcp 1 TCP详解 <1> tcp概述 TCP:英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的.可靠的.基于字节流的 ...
- socket中的TCP编程(调用免费聊天的机器人实现自动回复)
socket中的TCP编程(调用免费聊天的机器人实现自动回复) 在无聊时间复习了socket编程,写了这个简易代码!!注意要在联网状态下跑 1:服务器模块: import socket import ...
- TCP与UDP协议,socket套接字编程,通信相关操作
文章目录 TCP与UDP协议 TCP协议 ==三次握手== ==四次挥手== UDP协议 TCP与UDP的区别 应用层 socket套接字 代码优化 循环通信 半连接池 粘包问题 TCP与UDP协议 ...
- Socket编程概念和 Socket之异步TCP客户端断线重连
一:什么是SOCKET socket的英文原义是"孔"或"插座".作为进程通信机制,取后一种意思.通常也称作"套接字",用于描 ...
最新文章
- 深入掌握Java技术 EJB调用原理分析
- 2021首期Nature封面:牛津大学ML算法实现10万高压非晶硅原子的模拟​ | AI日报
- SAP WM初阶之2-Step Picking创建的Group查询报表
- SQL Server服务器名称填写IP不能访问问题解决
- cannot import name 'multiarray'
- 加了try-catch也能自动定位到异常代码[VS Tips]
- Codeforces 603A Alternative Thinking
- 21天学通HTML5和CSS3第二版,21天学通HTML5+CSS3
- HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
- copy-maven-plugin - where is it configured - Maven原理探究
- mono for android 使用Tab 控件
- hibernate正向生成数据库表以及配置——Teacher.java
- 防止System.exit调用
- 大前端的自动化工厂(3)—— babel
- 项目启动过后,停在了加载mapper xml文件过程中
- 全排列---STL方法与递归方法
- FP-growth算法,fpgrowth算法详解
- 数理统计——随机过程
- studio 3T 使用
- html怎么动态背景,HTML 动态背景
热门文章
- Ubuntu下自定义调整CPU工作频率(用于省电或提高性能都好用)
- 2017 Multi-University Training Contest - Team 5 1.Rikka with Candies(压位)
- mybatis 之 parameterType=list1
- mysql5.6 主从同步
- [osx] android studio下修改avd的hosts文件
- 那些不能遗忘的知识点回顾——操作系统系列(笔试面试高频题)
- asp.net中后台javaScrip的使用
- hibernate配置文件hibernate.cfg.xml的详细解释
- Ncurses 命令行图形库
- Bzoj4556 [Tjoi2016Heoi2016]字符串