为什么client和server之间的通讯一直不能成功(看原码)在线等待`` server端不能那样写吧。肯定要通过线程来实现客户端的链接 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String line = in.readLine();改为:// 等待客户端的输入 char[] buffer = new char[1024]; int lineSize = in.read(buffer); String clientString = new String(buffer, 0, lineSize - 1); System.out.println("The client command string is:" + clientString);试试 public static void main(String[] args){ new Server();-------------------^^^^^^^^^^^换成Server server1=new Server(); }Client也一样 一个oracle 的事例import java.net.*;import java.io.*;import java.sql.*;public class Server { public static void main(String[] args){ ServerSocket serverSocket; Socket clientSocket; BufferedReader br; PrintStream ps; String username,password,email,homepage,money,outString,sql; String url="jdbc:oracle:oci8:@oracledb"; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con=DriverManager.getConnection(url,"scott","tiger"); Statement stmt=con.createStatement(); serverSocket=new ServerSocket(8888); clientSocket=serverSocket.accept(); br=new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); ps=new PrintStream(clientSocket.getOutputStream()); username=br.readLine(); outString="\t\t\t\t\t你输入的姓名是:"+username; ps.println(outString); ps.flush(); password=br.readLine(); outString="\t\t\t\t\t你输入的密码是:"+password; ps.println(outString); ps.flush(); email=br.readLine(); outString="\t\t\t\t\t你输入的电子邮件地址是:"+email; ps.println(outString); ps.flush(); homepage=br.readLine(); outString="\t\t\t\t\t你输入的主页是:"+homepage; ps.println(outString); ps.flush(); money=br.readLine(); outString="\t\t\t\t\t你输入的金额是:"+money; ps.println(outString); ps.flush(); sql="insert into userinfo values(\'"+username+"\',\'"+ password+"\',\'"+ email+"\',\'"+ homepage+"\',"+ "sysdate,"+ money+")"; int ret=stmt.executeUpdate(sql); br.close(); ps.close(); stmt.close(); con.close(); serverSocket.close(); clientSocket.close(); }catch (Exception e){ System.out.println(e); } } }import java.net.*;import java.io.*;public class Client{ public static void main(String[] args){ Socket clientSocket; BufferedReader br1,br2; PrintStream ps; String username,password,email,homepage,money,inString; try{ clientSocket=new Socket("localhost",8888); br1=new BufferedReader(new InputStreamReader(System.in)); br2=new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); ps =new PrintStream(clientSocket.getOutputStream()); System.out.println("请输入用户姓名(必须项,最多20个字符):"); username=br1.readLine(); ps.println(username); ps.flush(); inString=br2.readLine(); System.out.println(inString); System.out.print("请输入密码(必须项,最多20个字符):"); password=br1.readLine(); ps.println(password); ps.flush(); inString=br2.readLine(); System.out.println(inString); System.out.print("请输入电子邮件地址(最多30个字符):"); email=br1.readLine(); ps.println(email); ps.flush(); inString=br2.readLine(); System.out.println(inString); System.out.print("请输入个人主页(最多50个字符):"); homepage=br1.readLine(); ps.println(homepage); ps.flush(); inString=br2.readLine(); System.out.println(inString); System.out.print("请输入金额(必须项,只能是数字):"); money=br1.readLine(); ps.println(money); ps.flush(); inString=br2.readLine(); System.out.println(inString); br1.close(); br2.close(); ps.close(); clientSocket.close(); }catch(Exception e){ System.out.println(e); } }}数据库结构CREATE TABLE useinfo( username varchar2(20) not null primary key, password varchar2(20) not null, email varchar2(30), homepage varchar2(50), regtime date, money number(10));commit;exit; 请问, 怎么在JTable的Cell中显示图片? 求个算法 JAVA生成一维码图片! java的sdk中ZipInputStream类的getUTF8String方法 简单问题,页面刷新,跳转页面! 谢谢大家帮忙! 哪种语言学完后出去好找工作?是c#还是java??? 文件读写的问题,急!!! 怎么从文件中读入一个数字?就像c中的scanf("%d",&i) 60分!.jar文件在linux下不能双击执行!为什么?怎么才能让其能双击执行? 这个题目该怎么做啊? 请教排序问题? 请教:FileInputStream如何读取中文字符?
// 等待客户端的输入
char[] buffer = new char[1024];
int lineSize = in.read(buffer);
String clientString = new String(buffer, 0, lineSize - 1);
System.out.println("The client command string is:" + clientString);试试
new Server();
-------------------^^^^^^^^^^^换成Server server1=new Server();
}Client也一样
import java.io.*;
import java.sql.*;
public class Server {
public static void main(String[] args){
ServerSocket serverSocket;
Socket clientSocket;
BufferedReader br;
PrintStream ps;
String username,password,email,homepage,money,outString,sql;
String url="jdbc:oracle:oci8:@oracledb";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(url,"scott","tiger");
Statement stmt=con.createStatement();
serverSocket=new ServerSocket(8888);
clientSocket=serverSocket.accept();
br=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
ps=new PrintStream(clientSocket.getOutputStream());
username=br.readLine();
outString="\t\t\t\t\t你输入的姓名是:"+username;
ps.println(outString);
ps.flush();
password=br.readLine();
outString="\t\t\t\t\t你输入的密码是:"+password;
ps.println(outString);
ps.flush();
email=br.readLine();
outString="\t\t\t\t\t你输入的电子邮件地址是:"+email;
ps.println(outString);
ps.flush();
homepage=br.readLine();
outString="\t\t\t\t\t你输入的主页是:"+homepage;
ps.println(outString);
ps.flush();
money=br.readLine();
outString="\t\t\t\t\t你输入的金额是:"+money;
ps.println(outString);
ps.flush();
sql="insert into userinfo values(\'"+username+"\',\'"+
password+"\',\'"+
email+"\',\'"+
homepage+"\',"+
"sysdate,"+
money+")";
int ret=stmt.executeUpdate(sql);
br.close();
ps.close();
stmt.close();
con.close();
serverSocket.close();
clientSocket.close();
}catch (Exception e){
System.out.println(e);
}
}
}
import java.net.*;
import java.io.*;
public class Client{
public static void main(String[] args){
Socket clientSocket;
BufferedReader br1,br2;
PrintStream ps;
String username,password,email,homepage,money,inString;
try{
clientSocket=new Socket("localhost",8888);
br1=new BufferedReader(new InputStreamReader(System.in));
br2=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
ps =new PrintStream(clientSocket.getOutputStream());
System.out.println("请输入用户姓名(必须项,最多20个字符):");
username=br1.readLine();
ps.println(username);
ps.flush();
inString=br2.readLine();
System.out.println(inString);
System.out.print("请输入密码(必须项,最多20个字符):");
password=br1.readLine();
ps.println(password);
ps.flush();
inString=br2.readLine();
System.out.println(inString);
System.out.print("请输入电子邮件地址(最多30个字符):");
email=br1.readLine();
ps.println(email);
ps.flush();
inString=br2.readLine();
System.out.println(inString);
System.out.print("请输入个人主页(最多50个字符):");
homepage=br1.readLine();
ps.println(homepage);
ps.flush();
inString=br2.readLine();
System.out.println(inString);
System.out.print("请输入金额(必须项,只能是数字):");
money=br1.readLine();
ps.println(money);
ps.flush();
inString=br2.readLine();
System.out.println(inString);
br1.close();
br2.close();
ps.close();
clientSocket.close();
}catch(Exception e){
System.out.println(e);
}
}
}数据库结构
CREATE TABLE useinfo
(
username varchar2(20) not null primary key,
password varchar2(20) not null,
email varchar2(30),
homepage varchar2(50),
regtime date,
money number(10)
);
commit;
exit;