gameserver.java

来自「JAVA编写的聊天工具」· Java 代码 · 共 126 行

JAVA
126
字号
import java.io.*;
import java.net.*;
import java.sql.*;

public class GameServer implements Runnable
{
	ServerSocket ss;
	
	
	public GameServer()
	{
		try
		{
			ss = new ServerSocket(10000);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
		System.out.println("OK");
		
		Thread th = new Thread(this);
		th.start();
	}
	
	public void run()
	{
		Socket cs;
		while(true)
		{
			try
			{
				System.out.println("Listening....");
		        cs = ss.accept();
		        System.out.println("Accepted!");
		        Client client = new Client(cs);
		        client.start();
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String argv[])
	{
		GameServer gs = new GameServer();
	}
}

class Client extends Thread
{
	Socket cs;
	ObjectInputStream ois;
	ObjectOutputStream oos;
	Connection con=null;
	PreparedStatement st=null;
	ResultSet rs=null;
	
	
	public Client(Socket socket)
	{
		try
		{
			cs = socket;
			
			ois = new ObjectInputStream(socket.getInputStream());
			oos = new ObjectOutputStream(socket.getOutputStream());
			
			Message u = (Message)ois.readObject();
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			con=DriverManager.getConnection("jdbc:odbc:mydatasource","sa","");
			st=con.prepareStatement("select * from userss where name=? and password=?");
			st.setString(1,u.m1);
			st.setString(2,u.m2);
			rs=st.executeQuery();
		    while(rs.next())
		    {
		    		Message tu = new Message();
			        tu.m1 = "OK";
			        oos.writeObject(tu);
		    }
		    con.close();
		    st.close();
		    rs.close();
		
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	
	public void run()
	{
		Message tu = new Message();
		tu.m1 = "祝你好运!";
		try
		{
			oos.writeObject(tu);
		}
		catch(Exception e){};
		
		while(true)
		{
			try
			{
				tu = null;
				tu = (Message)ois.readObject();
			    tu.m1 = "你好厉害!你已过"+ tu.m3 + "级";
			    oos.writeObject(tu);
			}
			catch(Exception e) {return;}
		}
	}
}

class Message implements Serializable
{
	String m1;
	String m2;
	int m3;
}

⌨️ 快捷键说明

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