新手。。
学习聊天室程序
编译通过。
但是两端都只能发信息。。收不到任何信息。。
为什么呢?import java.io.*;
import java.net.*;public class ChartServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(1985);
Socket s = ss.accept();
InputStream serverIn = s.getInputStream();
OutputStream serverOut = s.getOutputStream();
new ServerReader(serverIn).start();
new ServerWriter(serverOut).start();
} catch(Exception e) {
e.printStackTrace();
}
}
}class ServerReader extends Thread {
ServerReader(InputStream aIn) {
in = aIn;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while(true) {
System.out.println("对方说:" + br.readLine());
}
} catch(IOException e) {
e.printStackTrace();
} }
private InputStream in;
}class ServerWriter extends Thread {
ServerWriter(OutputStream aOut) {
out = aOut;
}
public void run() {
try{
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);
String info;
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
while(true) {
info = br.readLine();
bw.write(info);
bw.flush();
}
} catch(IOException e) {
e.printStackTrace();
} }
private OutputStream out;
}
import java.io.*;
import java.net.*;public class ChartClient {
public static void main(String[] args) {
System.out.println("欢迎进入简易聊天系统客户端");
try {
Socket s = new Socket("127.0.0.1",1985);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
new ClientWriter(out).start();
new ClientReader(in).start();
} catch(Exception e) {
e.printStackTrace();
}
}
}class ClientReader extends Thread {
ClientReader(InputStream aIn) {
in = aIn;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String info;
while(true) {
info = br.readLine();
System.out.println("服务器端说:" + info);
}
} catch(Exception e) {
e.printStackTrace();
}
}
private InputStream in;
}class ClientWriter extends Thread {
ClientWriter(OutputStream aOut) {
out = aOut;
}
public void run() {
String info;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
while(true) {
info = br.readLine();
bw.write(info);
bw.flush();
}
} catch(Exception e) {
e.printStackTrace();
}
}
private OutputStream out;
}
学习聊天室程序
编译通过。
但是两端都只能发信息。。收不到任何信息。。
为什么呢?import java.io.*;
import java.net.*;public class ChartServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(1985);
Socket s = ss.accept();
InputStream serverIn = s.getInputStream();
OutputStream serverOut = s.getOutputStream();
new ServerReader(serverIn).start();
new ServerWriter(serverOut).start();
} catch(Exception e) {
e.printStackTrace();
}
}
}class ServerReader extends Thread {
ServerReader(InputStream aIn) {
in = aIn;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while(true) {
System.out.println("对方说:" + br.readLine());
}
} catch(IOException e) {
e.printStackTrace();
} }
private InputStream in;
}class ServerWriter extends Thread {
ServerWriter(OutputStream aOut) {
out = aOut;
}
public void run() {
try{
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);
String info;
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
while(true) {
info = br.readLine();
bw.write(info);
bw.flush();
}
} catch(IOException e) {
e.printStackTrace();
} }
private OutputStream out;
}
import java.io.*;
import java.net.*;public class ChartClient {
public static void main(String[] args) {
System.out.println("欢迎进入简易聊天系统客户端");
try {
Socket s = new Socket("127.0.0.1",1985);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
new ClientWriter(out).start();
new ClientReader(in).start();
} catch(Exception e) {
e.printStackTrace();
}
}
}class ClientReader extends Thread {
ClientReader(InputStream aIn) {
in = aIn;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String info;
while(true) {
info = br.readLine();
System.out.println("服务器端说:" + info);
}
} catch(Exception e) {
e.printStackTrace();
}
}
private InputStream in;
}class ClientWriter extends Thread {
ClientWriter(OutputStream aOut) {
out = aOut;
}
public void run() {
String info;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
while(true) {
info = br.readLine();
bw.write(info);
bw.flush();
}
} catch(Exception e) {
e.printStackTrace();
}
}
private OutputStream out;
}
解决方案 »
- 为什么图像显示不出来,,高手看下
- Java写的文本显示下划线如何实现
- 【求助】使用Myeclipse把程序打成jar包运行和在Myeclipse里面执行有什么区别
- JAVA利用registry访问注册表的问题
- HTML页面提交的值,JAVASCRIPT如何取得,我需要实现JAVASC RIPT操作数据库,表单中提交的内容,插入数据库,现在我不能取到提交后的值,没有后
- java怎么调用jni获取已安装软件的列表信息?
- serverlet包怎么用啊?分数不成问题,急救
- 大家看tij,用了多长时间!!!
- 在XP下用Ant出现以下报错,请高手帮忙
- scjp的考试中都是以选择题的形式出现的吗?
- 用java写的重命名的程序,为什么不能重命名
- 客户不允许在他们的DB上建触发器,求感知表变化的算法或者思路
问题你有没写方法把各方写的消息发到各个用户对话框上面显示我讲下思想:写一个方法用发发送消息给各个用户,方法里面最好是有List<User>的容器,以及取到IO流对象用于显示在对话框上面。。
学到后面如何是学了JMS的话,写这个应该不难。
本人比较懒,没看楼主的源码就回答问题了,见谅![近来心情不好]
public List userList() {
// TODO Auto-generated method stub
return null;
} @Override
public void userRegister() {
try {
int i = 1;
ServerSocket s = new ServerSocket(9000);
ServerActionController.getInstance().getFrame().getJConsoleTextArea().append("启动。。\n");
/*采用循环来处理多个客户端连接的问题*/
while(true){
Socket client = s.accept();
Runnable clientRunnable = new ThreadedRegHandle(client, i);
Thread clientThread = new Thread(clientRunnable);
clientThread.start();
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:/*然后将信息通过socket,将用户信息发送到服务器端*/
try {
socket = new Socket(IP_ADDRESS,9000);
Scanner in = new Scanner(socket.getInputStream());
PrintWriter out=new PrintWriter(socket.getOutputStream());
/*告诉服务器客户端需要的是注册服务*/
out.println("login");
out.flush();
String userName = userNameTextField.getText();
String userPassword = userPasswordField.getText();
myUser.setUser_name(userName);
out.println(userName);
out.println(userPassword);
out.flush();
while(userState == null || userState.equals(""))
userState = in.nextLine();
}catch (UnknownHostException e1) {
e1.printStackTrace();
}catch (IOException e1) {
e1.printStackTrace();
}
ChatServer.javapackage server;import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ChatServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(1985);
Socket s = ss.accept();
InputStream serverIn = s.getInputStream();
OutputStream serverOut = s.getOutputStream();
new ServerReader(serverIn).start();
new ServerWriter(serverOut).start();
} catch (Exception e) {
e.printStackTrace();
}
}}class ServerReader extends Thread {
ServerReader(InputStream aIn) {
in = aIn;
} public void run() {
try {
DataInputStream dataInputStream = new DataInputStream(in);
byte[] content=new byte[1000];
while (true) {
int count=dataInputStream.read(content);
System.out.println("对方说:" + new String(content,0,count));
}
} catch (IOException e) {
e.printStackTrace();
} } private InputStream in;}class ServerWriter extends Thread {
ServerWriter(OutputStream aOut) {
out = aOut;
} public void run() {
try {
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);
DataOutputStream dOutputStream=new DataOutputStream(out);
String info;
while (true) {
info = br.readLine();
dOutputStream.write(info.getBytes());
dOutputStream.flush();
}
} catch (IOException e) {
e.printStackTrace();
} } private OutputStream out;
}ChatClient.javapackage client;import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;public class ChatClient {
public static void main(String[] args) {
try {
Socket s = new Socket("127.0.0.1", 1985);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
new ClientWriter(out).start();
new ClientReader(in).start(); } catch (Exception e) {
e.printStackTrace();
}
}}class ClientReader extends Thread {
ClientReader(InputStream aIn) {
in = aIn;
} public void run() {
try {
DataInputStream dataInputStream = new DataInputStream(in);
byte[] content=new byte[1000];
while (true) {
int count=dataInputStream.read(content);
System.out.println("服务器端说:" + new String(content,0,count));
}
} catch (Exception e) {
e.printStackTrace();
}
} private InputStream in;
}class ClientWriter extends Thread {
ClientWriter(OutputStream aOut) {
out = aOut;
} public void run() {
String info;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
DataOutputStream dOutputStream=new DataOutputStream(out);
while (true) {
info = br.readLine();
dOutputStream.write(info.getBytes());
dOutputStream.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
} private OutputStream out;
}
String temp;
while(true){
try {
temp=bReader.readLine();
System.out.println("你输入的内容是:"+temp);
pWriter.println(temp);
System.out.println("数据发送成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}