[JAVA] Tcp客户端和服务器简单代码

服务器:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; public class TcpServer {
public static void main(String [] args) throws IOException
{
@SuppressWarnings("resource")
ServerSocket server=new ServerSocket(8000);
Socket s=null;
DataOutputStream dataOut=null;
DataInputStream dataIn=null;
while(true){
try{
s=server.accept();
dataOut=new DataOutputStream(s.getOutputStream());
dataIn =new DataInputStream(s.getInputStream());
while(true){
Byte c=dataIn.readByte();
if(c=='0'){
System.out.println("执行继电器快关变换!");
dataOut.writeByte('Y');
}else if(c=='w'){
System.out.println("将温度值传给服务器!");
dataOut.writeByte(2);
}else if(c=='s'){
System.out.println("将深度值传给服务器!");
dataOut.writeByte(4);
}else{
System.out.println("错误命令返回!");
dataOut.writeByte('N');
}
}
}catch(IOException e){}
dataOut.close();
dataIn.close();
s.close();
}
}
}
客户端代码:
/*
TCP客户端:输入命令从服务器获得数据
输入:0即开关继电器,当服务器执行好任务时返回89
w获得温度数据,服务器返回温度数据
s获得水深数据,服务器返回水深数据
其他输入均为无效输入,服务器返回78
PS:服务器只接受1个char,返回也是一个char,上述数据均为16进制
*/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner; public class TcpClient {
public static void main(String [] args) throws IOException
{
Socket s = null;
DataInputStream DataIn = null;
DataOutputStream DataOut = null;
try {
//s=new Socket(InetAddress.getByName("192.168.1.130"),8000);
s=new Socket("localhost",8000);
DataIn = new DataInputStream(s.getInputStream());
DataOut=new DataOutputStream(s.getOutputStream());
System.out.println("连接成功");
@SuppressWarnings("resource")
Scanner keyIn= new Scanner(System.in);
while(keyIn.hasNext()){
String c=keyIn.nextLine();
System.out.println("输入: "+c);
if(c.length()==0)continue;
DataOut.writeByte(c.charAt(0));
System.out.println("收到: "+DataIn.readByte());
}
DataIn.close();
DataOut.close();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DataIn.close();
DataOut.close();
s.close();
}
}
[JAVA] Tcp客户端和服务器简单代码的更多相关文章
- Java的稀疏数组的简单代码实现
目录 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 二.稀疏数组的Java代码实现思路 三.稀释数组的Java代码实现 四.结语 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 ...
- Java实验四 TCP客户端和服务器的应用
实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全 4.对通信内容进行摘要计算并验证 实验步骤 1.信息安全传送: 发送方A——————>接收方B A加密时,用B ...
- TCP客户端 服务端详细代码
本文章转自http://www.myexception.cn/program/1912019.html TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TC ...
- Java模拟客户端向服务器上传文件
先来了解一下客户端与服务器Tcp通信的基本步骤: 服务器端先启动,然后启动客户端向服务器端发送数据. 服务器端收到客户端发送的数据,服务器端会响应应客户端,向客户端发送响应结果. 客户端读取服务器发送 ...
- Java 自定义客户端与服务器
一:浏览器如何请求数据基本原理 基本原理: 当浏览器输入地址向服务器请求数据时,实际上浏览器会在内部建立一个Socket对象,把http请求报文转变成byet[]字节,然后调用Socket的方法把这些 ...
- java学习笔记——Java多客户端与服务器通信
先说一下大概的思路: 应用多线程来实现服务器与多客户端之间的通信 1.服务器端创建ServerSocket,循环调用accept()等待客户端连接: 2.客户端创建一个Socket并请求与服务器端连接 ...
- [Java]Hessian客户端和服务端代码例子
简要说明:这是一个比较简单的hessian客户端和服务端,主要实现从客户端发送指定的数据量到服务端,然后服务端在将接收到的数据原封不动返回到客户端.设计该hessian客户端和服务端的初衷是为了做一个 ...
- Socket TCP客户端和服务器的实现
import java.io.*; import java.net.Inet4Address; import java.net.InetSocketAddress; import java.net.S ...
- TCP客户端和服务器间传输数据遇到的TypeError: a bytes-like object is required, not 'str'问题
使用python实现python核心编程3第472页和474页的TCP时间戳服务器和客户端服务器间数据传输编程时遇到TypeError: a bytes-like object is required ...
随机推荐
- java web 程序---留言板
思路:一个form表单,用户提交留言 一个页面显示留言内容.用到Vector来存取信息并显示 cas.jsp <body> <form action="fei.jsp&qu ...
- python使用scikit-learn计算TF-IDF
1 Scikit-learn下载安装 1.1 简介 1.2 安装软件 2 TF-IDF基础知识 2.1 TF-IDF概念 2.2 举例说明计算 3 Scikit-Learn中计算TF-IDF 3.1 ...
- 精《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #7 Cgroup、Namespace、Linux容器
HACK #7 Cgroup.Namespace.Linux容器 本节将介绍Cgroup与Namespace以及通过这两个功能实现的容器功能.CgroupCgroup(control group)是将 ...
- EF Attach时报错
ASP.NET MVC项目 Repository层中,Update.Delete总是失败 another entity of the same type already has the same pr ...
- 获取文件夹总大小方法2_获取cmd命令结果,效率最高
public static long GetDirectorySize(string path) { long res = 0; System.Diagnostics.Process p = new ...
- springboot 测试 有注入HttpSession的bean
question: nested exception is java.lang.IllegalStateException: No thread-bound request found: Are yo ...
- SQL 基础命令和函数
[数据操作] SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 [数据定义] C ...
- CentOS6系统优化
[root@xuliangwei ~]# cat /etc/redhat-release //系统环境CentOS6.6 CentOS release 6.6 (Final) [root@xulian ...
- java 在MySQL中存储文件,读取文件(包括图片,word文档,excel表格,ppt,zip文件等)
转自:https://blog.csdn.net/u014475796/article/details/49893261 在设计到数据库的开发中,难免要将图片或文档文件(如word)插入到数据库中的情 ...
- 实战zabbix3.0.2 使用percona mysql插件监控mysql5.7
1.系统环境 [root@shard0 templates]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 ...