客户端代码实现
import java.io.*; import java.net.*; import java.util.Scanner; public class Client { public static void main(String args[]) { Scanner s=new Scanner(System.in); // 创建键盘接收器对象 int mess1= 0; char me=0; int mess2=0; Socket mysocket; // Socket类实现客户端套接字 DataInputStream in=null; // 读取服务器的回答的io流 DataOutputStream out=null; // 向服务器提问的io流 try { mysocket=new Socket("127.0.0.1",2010); // 端口号是服务器端与客户端链接的通路标志,通过端口号与服务器建立连接 in=new DataInputStream(mysocket.getInputStream()); // 注意DataInputStream的创建 out=new DataOutputStream(mysocket.getOutputStream()); // 注意DataOutputStream的创建 while(true) { System.out.println("请输入您要计算的式子:"); mess1=s.nextInt(); me=(char)s.next().charAt(0); mess2=s.nextInt(); out.writeInt(mess1); out.writeChar(me); out.writeInt(mess2); int answer=in.readInt(); // 读取信息,堵塞状态 System.out.println("客户收到服务的回答:"+answer); } }catch(Exception e) { System.out.println("服务器已断开"+e); }; } }
服务器端代码实现
import java.io.*; import java.net.*; //当用到网络编程时要导java.net.*;包 public class Server { public static void main(String args[]) { int answer=0; ServerSocket serverForClient=null; // ServerSocket类实现服务器套接字(只有一个用处好像,即申请服务器端口号) Socket socketonServer=null; // Socket类实现客户端套接字 DataOutputStream out=null; DataInputStream in=null; try { serverForClient =new ServerSocket(2010); // 端口号是服务器端与客户端链接的通路标志,设置服务器端口号 }catch(IOException e) { //如果端口号已经被占用,将触发异常 System.out.println(e); } try { System.out.println("等待客户呼叫"); socketonServer=serverForClient.accept(); // 堵塞状态——等待客户端访问,获得客户端地址 System.out.println("客户的地址:"+socketOnServer.getInetAddress()); // 输出客户端的地址 out=new DataOutputStream(socketOnServer.getOutputStream()); in=new DataInputStream(socketOnServer.getInputStream()); while(true) { int s1=in.readInt(); // in读取信息,堵塞状态 char u=in.readChar(); int s2=in.readInt(); System.out.println("服务器收到客户的提问:"+s1+u+s2); switch(u) { case '*':answer=s1*s2;break; case '/':answer=s1/s2;break; case '+':answer=s1+s2;break; case '-':answer=s1-s2;break; case '%':answer=s1%s2;break; } out.writeInt(answer); } }catch(Exception e) { System.out.println("客户已断开"+e); } } }
测试算式输入格式
import java.util.Scanner; //测试输入方式————>输入10 + 10(数与运算符之间要有空隔间隔) public class test { public static void main(String args[]) { Scanner s=new Scanner(System.in); int s1=s.nextInt(); char ms=s.next().charAt(0); int s2=s.nextInt(); System.out.println(s1+"n"+ms+"n"+s2); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)