首页 > 代码库 > [JAVA] Tcp客户端和服务器简单代码
[JAVA] Tcp客户端和服务器简单代码
服务器:
1 import java.io.DataInputStream; 2 import java.io.DataOutputStream; 3 import java.io.IOException; 4 import java.net.ServerSocket; 5 import java.net.Socket; 6 7 public class TcpServer { 8 public static void main(String [] args) throws IOException 9 {10 @SuppressWarnings("resource")11 ServerSocket server=new ServerSocket(8000);12 Socket s=null;13 DataOutputStream dataOut=null;14 DataInputStream dataIn=null;15 while(true){16 try{17 s=server.accept();18 dataOut=new DataOutputStream(s.getOutputStream());19 dataIn =new DataInputStream(s.getInputStream());20 while(true){21 Byte c=dataIn.readByte();22 if(c==‘0‘){23 System.out.println("执行继电器快关变换!");24 dataOut.writeByte(‘Y‘);25 }else if(c==‘w‘){26 System.out.println("将温度值传给服务器!");27 dataOut.writeByte(2);28 }else if(c==‘s‘){29 System.out.println("将深度值传给服务器!");30 dataOut.writeByte(4);31 }else{32 System.out.println("错误命令返回!");33 dataOut.writeByte(‘N‘);34 }35 }36 }catch(IOException e){}37 dataOut.close();38 dataIn.close();39 s.close();40 }41 }42 }
客户端代码:
1 /* 2 TCP客户端:输入命令从服务器获得数据 3 输入:0即开关继电器,当服务器执行好任务时返回89 4 w获得温度数据,服务器返回温度数据 5 s获得水深数据,服务器返回水深数据 6 其他输入均为无效输入,服务器返回78 7 PS:服务器只接受1个char,返回也是一个char,上述数据均为16进制 8 */ 9 import java.io.DataInputStream;10 import java.io.DataOutputStream;11 import java.io.IOException;12 import java.net.InetAddress;13 import java.net.Socket;14 import java.util.Scanner;15 16 public class TcpClient {17 public static void main(String [] args) throws IOException 18 {19 Socket s = null;20 DataInputStream DataIn = null;21 DataOutputStream DataOut = null;22 try {23 //s=new Socket(InetAddress.getByName("192.168.1.130"),8000);24 s=new Socket("localhost",8000);25 DataIn = new DataInputStream(s.getInputStream());26 DataOut=new DataOutputStream(s.getOutputStream());27 System.out.println("连接成功");28 @SuppressWarnings("resource")29 Scanner keyIn= new Scanner(System.in);30 while(keyIn.hasNext()){31 String c=keyIn.nextLine();32 System.out.println("输入: "+c);33 if(c.length()==0)continue;34 DataOut.writeByte(c.charAt(0));35 System.out.println("收到: "+DataIn.readByte());36 }37 DataIn.close();38 DataOut.close();39 s.close();40 } catch (IOException e) {41 // TODO Auto-generated catch block42 e.printStackTrace();43 }44 DataIn.close();45 DataOut.close();46 s.close();47 }48 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。