简单的两 *** 作数计算器实现(基于Java网络编程)

简单的两 *** 作数计算器实现(基于Java网络编程),第1张

简单的两 *** 作数计算器实现(基于Java网络编程)

客户端代码实现

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);
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5696808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存