⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net.java

📁 java编写的一个网络象棋,通过对方ip连接,开始游戏,同时可以进行聊天,聊天部分通过线程实现,可以同时进行多个会话.
💻 JAVA
字号:
package net;

import java.net.InetAddress;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;

public class Net{
	public static final int PORT=5678;
	private Timer timer;
	private SocketServer server;
	private SocketClient client;
	public static boolean isServer;
    public static boolean hasConnected=false;
	
	public Net(){
		timer=new Timer();
		timer.schedule(new ServerTask(),1000);
	}
	
    public void connectServer(String ipStr){        //连接服务器
    	try{
    		client=new SocketClient(ipStr);	
    		System.out.println("成功连接服务器!");
    		hasConnected=true;
    	}catch(Exception e){
    		JOptionPane.showMessageDialog(null,"连接不上,请确认对方是否在线!");
    		System.out.println("连接不上....");
    	}
    	isServer=false;
    	timer.cancel();
    }
    
    public void sendMessage(String message){       //发送信息
        System.out.println("Net.sendMsg: "+message); 
		if(isServer)
			server.send(message);
		else
			client.send(message);
	}
    
	public String readMessage(){                    //接收信息
		if(!hasConnected){
			return "";
		} 
		String message = "";
		try{
			if (isServer)
				message = server.read();
			else
				message = client.read();			
		}catch(Exception e){
			System.out.println("Cannot read from net. Check your network");
		}
		return message;
	}
	 
	private class ServerTask extends TimerTask{            //开启本机服务器
		public void run(){
			try{
				server = new SocketServer();
			}catch(Exception e){
//				System.out.println("客户端:连接本机服务器.");
				connectServer(getMyAdress());                 //连接本机服务器,测试用
			}
			if(server.isConnected) hasConnected=true;
		}
	}	
	
	public static String getMyAdress(){              //获取本机IP
		String wholeString;
		String ipString;
		try{
			wholeString = InetAddress.getLocalHost().toString();
			ipString = wholeString.substring(wholeString.lastIndexOf("/") + 1);
			System.out.println(wholeString+"\n"+ipString);
			return ipString;
		}catch (Exception e){
			return "null";
		}
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -