码云链接:https://gitee.com/hlxwzyyyyzyq/codes
实训要求:使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的“client_学号”表中
2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到数据库的表中
3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_学号"的表
4.提交文件结果包括:代码,数据库导出为.sql文件
服务器端代码:
import java.util.*;
import java.io.*;
import java.net.*;
public class Server_Main
{
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
ServerSocket server = null;
ServerThread thread;
Socket kehu = null;
while (true){
try {
server = new ServerSocket(2010);
}
catch(IOException e1){
System.out.println("正在监听");
}
try {
System.out.println("等待呼叫");
kehu = server.accept();
}
catch (Exception e)
{
System.out.println("正在等待客户"+e);
}
if (kehu !=null){
new ServerThread(kehu).start(); }
}
}
}
class ServerThread extends Thread{
Scanner scanner = new Scanner(System.in);
Socket socket;
DataOutputStream out=null;
DataInputStream in=null;
String s = null;
ServerThread(Socket t)
{
socket = t;
try
{
out = new DataOutputStream(socket.getOutputStream());
in = new DataInputStream(socket.getInputStream());
for(int i=0;i<10;i++)
{
String s=in.readUTF();
System.out.println("客户来话:"+s);
out.writeUTF(scanner.nextLine());
}
}
catch (IOException e){}
}
}
客户端代码:
import java.io.*;
import java.net.*;
import java.util.*;
public class Client_Main
{
public static void main (String args[])
{
Socket mysocket;
DataInputStream in=null;
DataOutputStream out=null;
try
{
mysocket = new Socket("127.0.0.1",2010);
in = new DataInputStream(mysocket.getInputStream());
out = new DataOutputStream(mysocket.getOutputStream());
for (int i=0;i<10;i++)
{
Scanner scanner = new Scanner(System.in);
String source = scanner.nextLine();
out.writeUTF(source);
String s= in.readUTF();
System.out.println("收到服务器的回答:"+s);
Thread.sleep(500);
}
}
catch(Exception e)
{
System.out.println("服务器已断开"+e);
}
}
}
数据库:( 链接 建表 会话无法插入)
Connection con=null;
Statement sql;
ResultSet rs;
try{ Class.forName("com.mysql.kdbc.Driver");
}
catch(Exception e){}
String uri="jdbc:mysql://localhost:3306/client?useSSL=true";
String user="root";
String password="111111";
try{con = DriverManager.getConnection(uri,user,password);}
catch(SQLException e){}
String jilu="";
String sqlStr = ""+jilu;
try{
sql=con.createStatement();
rs=sql.executeQuery("SELECT bir FROM mess WHERE Number=1001");
while(rs.next()){
String number=rs.getString(1);
//String name=rs.getString(2);
//Date date=rs.getDate(3);
//float height=rs.getFloat(4);
System.out.print(number);
//System.out.print(name);
//System.out.print(date);
//System.out.print(height);
}
con.close();
}
catch(SQLException e){
System.out.println(e);
}
总结: 按照书中的例题建立客户端与服务器之间通话 和 链接数据库链接和建表 课上都练习过 但要把两个结合在一起 没有例题 自己研究 越改越错 没有思路 由于课下自己没有练习 不懂变通 还是要多听多做多练多问。

浙公网安备 33010602011771号