关闭

Java socket与JDBC的共用

标签: socketjavajdbcmysql服务器
579人阅读 评论(0) 收藏 举报
分类:

做了一个下午,终于把客户端的数据通过socket发送到了服务器,然后通过JDBC存进了我的mysql数据库。废话不多说,直接说过程。

代码如下:

客户端代码(仅作测试用):

package com.wl2014.client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.SocketTimeoutException;

public class Client {
	public static void main(String[] args) throws IOException {
		Socket client = new Socket("127.0.0.1", 20006);
		client.setSoTimeout(10000);
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		PrintStream out = new PrintStream(client.getOutputStream()); 
		BufferedReader buf =  new BufferedReader(new InputStreamReader(client.getInputStream()));
		boolean flag = true;
		while(flag){
			System.out.print("输入信息:");
			String str = input.readLine();
			out.println(str);
			if("bye".equals(str)){
				flag = false;
			}else{
				try{
					String echo = buf.readLine();
					System.out.println(echo);
				}catch(SocketTimeoutException e){
					System.out.println("Time out, No response");
				}
			}
		}
		input.close();
		if(client != null){
			client.close();
		}
	}
}
服务器端(多线程):
package com.wl2014.server;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;


public class ServerThread implements Runnable {

	private Socket client = null;
	public ServerThread(Socket client){
		this.client = client;
	}

	@Override
	public void run() {
		try{
			PrintStream out = new PrintStream(client.getOutputStream());
			BufferedReader buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
			boolean flag =true;
			while(flag){
				String str =  buf.readLine();
				if(str == null || "".equals(str)){
					flag = false;
				}else{
					if("bye".equals(str)){
						flag = false;
					}else{
						out.println("echo:" + str);
					}
				}
			}
			out.close();
			client.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}

}
服务器端处理TCP请求:
package com.wl2014.server;

import java.net.ServerSocket;
import java.net.Socket;

public class Server1 {
	public static void main(String[] args) throws Exception{
		ServerSocket server = new ServerSocket(20006);
		Socket client = null;
		boolean f = true;
		while(f){
			client = server.accept();
			System.out.println("连接成功!");
			new Thread(new ServerThread(client)).start();
		}
		server.close();
	}
}
然后结合http://www.cnblogs.com/Neilling/p/4024558.html,这是java操作数据库的比较好的代码,可以结合一下,将其中的代码加到服务器端的代码中。测试一下,如果显示出你想要的东西,将服务端的代码生成一个jar包,直接让他在服务端运行就可以了。socket会始终监听你指定的端口。接着JDBC执行你的sql语句。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:130654次
    • 积分:1315
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:1篇
    • 译文:0篇
    • 评论:4条
    最新评论