import java.net.*;
import java.util.Scanner;
public class Client{ public static void main(String[] args) throws Exception{ Socket client=new Socket("localhost",8888);
Scanner sc=new Scanner(System.in);
System.out.print("请输入您的姓名: ");
String name=sc.next();
Thread cSent=new Thread(new ClientSentThread(client,name));
Thread cRevert=new Thread(new ClientRevertThread(client));
cRevert.start();
cSent.start();
cSent.join();
}
}/*******************************************************************************************/import java.net.*;
import java.util.*;
public class Server{ public static void main(String[] args) throws Exception{
ServerSocket server=new ServerSocket(8888);
System.out.println("服务器已开启,等待用户连接中........");
Socket client=null;
LinkedList<Socket> list=new LinkedList<Socket>();
boolean =true;
while(){
client=server.accept();
list.add(client);
System.out.println("注意: 发现一个新的客户端!");
new Thread(new ServerThread(list,client)).start();
}
server.close();
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
import java.util.*;
public class ServerThread implements Runnable{
private LinkedList<Socket> clientList;
private Socket client;
public ServerThread(LinkedList<Socket> clientList,Socket client){
this.client=client;
this.clientList=clientList;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean =true;
while(){
//String message=in.readUTF();
String message=in.readLine();
int sign=message.indexOf(":")+2;
if("stop".equalsIgnoreCase(message.substring(sign))){
sent("注意:"+message.substring(0,sign)+"离开了聊天室!");
break;
}
sent(message);
System.out.println("Server端收到信息: "+message+" 已转发给所有的用户!");
}
clientList.remove(client);
in.close();
}catch(Exception e){e.printStackTrace();}
}
private void sent(String message) throws Exception{
Iterator<Socket> iList=clientList.iterator();
//DataOutputStream out=null;
BufferedWriter out=null;
while(iList.hasNext()){
//out=new DataOutputStream(new BufferedOutputStream(iList.next().getOutputStream()));
out=new BufferedWriter(new OutputStreamWriter(iList.next().getOutputStream()));
out.write(message);
//out.writeUTF(message);
out.flush();
}
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
public class ClientRevertThread implements Runnable{
private Socket client;
public ClientRevertThread(Socket client){
this.client=client;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String message=null;
do{
//message=in.readUTF();
message=in.readLine();
if(message!=null)
System.out.println(message);
}while(message!=null);
in.close();
}catch(Exception e){ e.printStackTrace();}
}
}
import java.net.*;
import java.io.*;
public class ClientRevertThread implements Runnable{
private Socket client;
public ClientRevertThread(Socket client){
this.client=client;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String message=null;
do{
//message=in.readUTF();
message=in.readLine();
if(message!=null)
System.out.println(message);
}while(message!=null);
in.close();
}catch(Exception e){ e.printStackTrace();}
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
import java.util.Scanner;
public class ClientSentThread implements Runnable{
private Socket client;
private String name="游客";
public ClientSentThread(Socket client,String name){
this.client=client;
if(name!=null && name.length()<=6 && name.length()>0)
this.name=name;
}
public void run(){
try{
//DataOutputStream out=new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
Scanner sc=new Scanner(System.in);
boolean =true;
while(){
String message=sc.nextLine();
out.write(name+": "+message);
//out.writeUTF(name+": "+message);
out.flush();
if("stop".equalsIgnoreCase(message))
break;
}
out.close();
}catch(Exception e){ e.printStackTrace();}
}
}/*******************************************************************************************/客户端和服务器端运行后,message=in.readUTF(); 相对应的程序,可以在服务器端接收信息。
message=in.readLine(); 相对应的程序,在服务器端接收不到信息。请求大家帮助,谢谢啦
import java.util.Scanner;
public class Client{ public static void main(String[] args) throws Exception{ Socket client=new Socket("localhost",8888);
Scanner sc=new Scanner(System.in);
System.out.print("请输入您的姓名: ");
String name=sc.next();
Thread cSent=new Thread(new ClientSentThread(client,name));
Thread cRevert=new Thread(new ClientRevertThread(client));
cRevert.start();
cSent.start();
cSent.join();
}
}/*******************************************************************************************/import java.net.*;
import java.util.*;
public class Server{ public static void main(String[] args) throws Exception{
ServerSocket server=new ServerSocket(8888);
System.out.println("服务器已开启,等待用户连接中........");
Socket client=null;
LinkedList<Socket> list=new LinkedList<Socket>();
boolean =true;
while(){
client=server.accept();
list.add(client);
System.out.println("注意: 发现一个新的客户端!");
new Thread(new ServerThread(list,client)).start();
}
server.close();
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
import java.util.*;
public class ServerThread implements Runnable{
private LinkedList<Socket> clientList;
private Socket client;
public ServerThread(LinkedList<Socket> clientList,Socket client){
this.client=client;
this.clientList=clientList;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean =true;
while(){
//String message=in.readUTF();
String message=in.readLine();
int sign=message.indexOf(":")+2;
if("stop".equalsIgnoreCase(message.substring(sign))){
sent("注意:"+message.substring(0,sign)+"离开了聊天室!");
break;
}
sent(message);
System.out.println("Server端收到信息: "+message+" 已转发给所有的用户!");
}
clientList.remove(client);
in.close();
}catch(Exception e){e.printStackTrace();}
}
private void sent(String message) throws Exception{
Iterator<Socket> iList=clientList.iterator();
//DataOutputStream out=null;
BufferedWriter out=null;
while(iList.hasNext()){
//out=new DataOutputStream(new BufferedOutputStream(iList.next().getOutputStream()));
out=new BufferedWriter(new OutputStreamWriter(iList.next().getOutputStream()));
out.write(message);
//out.writeUTF(message);
out.flush();
}
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
public class ClientRevertThread implements Runnable{
private Socket client;
public ClientRevertThread(Socket client){
this.client=client;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String message=null;
do{
//message=in.readUTF();
message=in.readLine();
if(message!=null)
System.out.println(message);
}while(message!=null);
in.close();
}catch(Exception e){ e.printStackTrace();}
}
}
import java.net.*;
import java.io.*;
public class ClientRevertThread implements Runnable{
private Socket client;
public ClientRevertThread(Socket client){
this.client=client;
}
public void run(){
try{
//DataInputStream in=new DataInputStream(new BufferedInputStream(client.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String message=null;
do{
//message=in.readUTF();
message=in.readLine();
if(message!=null)
System.out.println(message);
}while(message!=null);
in.close();
}catch(Exception e){ e.printStackTrace();}
}
}/*******************************************************************************************/import java.net.*;
import java.io.*;
import java.util.Scanner;
public class ClientSentThread implements Runnable{
private Socket client;
private String name="游客";
public ClientSentThread(Socket client,String name){
this.client=client;
if(name!=null && name.length()<=6 && name.length()>0)
this.name=name;
}
public void run(){
try{
//DataOutputStream out=new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
Scanner sc=new Scanner(System.in);
boolean =true;
while(){
String message=sc.nextLine();
out.write(name+": "+message);
//out.writeUTF(name+": "+message);
out.flush();
if("stop".equalsIgnoreCase(message))
break;
}
out.close();
}catch(Exception e){ e.printStackTrace();}
}
}/*******************************************************************************************/客户端和服务器端运行后,message=in.readUTF(); 相对应的程序,可以在服务器端接收信息。
message=in.readLine(); 相对应的程序,在服务器端接收不到信息。请求大家帮助,谢谢啦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货