我客户端向服务器发一消息,服务器如何可以自动的回复。
解决方案 »
- 关于正则表达式,急啊。急
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- 这个do-while语句为什么条件没有满足循环却停止了?
- vector 与 ArrayList
- 对应于数据库中的 Date的 java数据类型是 什么?
- 各位csdn上的高手哪个有联通的spip网关的源代码呀,用java写的,如果没有可以进来知道一下吗
- String.matches()的使用,着急。比如串中包含一个文件名,我只要匹配文件是*.htm 或*.html的,表达式该怎么写?
- 程序中数字证书问题!急呀!
- 我如果想知道一个方法的含义那该怎么做,我去查那个jdk文档不知道那个方法在哪里!!!
- jdbc-odbc bridge 的问题
- 哭救,jdbc连接为什么出现这样的错误提示?
- 老报错:非静态的方法不能调用静态的内容!
就是服務有一個等輸入
當你輸入后,也就是服務接到你的消息
根擾你的消息確發,利且已經和你建的SOCKET輪出流,
使用PrintStream或者是BufferedWriter等輸出類都可以將消息發給你
具體是怎么樣的,如果你需要,我有一個自己寫的字符界面的聊天室
你可以看看
import java.io.*;
import java.net.*;
public class Client {
private static DataInputStream DIS;
private static DataOutputStream DOS;
private static Socket cSocket;
public static void main(String arg[]){
try{
//for(int i=0;i<arg.length;i++)
//System.out.println("\n "+arg[i]);
cSocket=new Socket(arg[0],1111);
DOS=new DataOutputStream(cSocket.getOutputStream());
DIS=new DataInputStream(cSocket.getInputStream());
String word="";
String msg="";
msg=DIS.readUTF();
System.out.println("Server Information:"+msg);
//BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//System.out.println("My Word:");
//word=br.readLine();
//DOS.writeUTF(word);
//while(!word.equals("bye")){
//msg=DIS.readUTF();
//System.out.println(msg);
//System.out.println("My Word:");
//word=br.readLine();
//DOS.writeUTF(word);
//瞳蚚盄最楷冞秏洘
new wordToServer(cSocket).start();
//瞳蚚盄最諉彶秏洘
new receiveWord(cSocket).start();
//}
}
catch(Exception e){
e.printStackTrace();
//System.out.println("Welcome again!");
}
}
}
class wordToServer extends Thread//蚚衾砃督昢け楷冞秏洘
{
private static DataOutputStream DOS;
private static Socket cSocket;
public wordToServer(Socket C)
{
try{
cSocket=C;
}
catch(Exception e)
{
e.printStackTrace();
//System.out.println("Welcome again!");
}
}
public void run()
{
String msg="";
while(!msg.equals("bye"))
{
try{
DOS=new DataOutputStream(cSocket.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//System.out.print("\nMy Word:");
msg=br.readLine();//植瑩攫怀⻌陓洘
DOS.writeUTF(msg);//蔚瑩攫怀⻌陓洘楷厘督昢傷
}
catch(Exception e)
{
e.printStackTrace();
try{
DOS.writeUTF("bye");//楷冞婬獗諷秶趼
}
catch(Exception e1)
{
e1.printStackTrace();
}
//System.out.println("Welcome again!");
}
}
try{
DOS.writeUTF(msg);
DOS.close();
cSocket.close();
}
catch(Exception e)
{
e.printStackTrace();
//System.out.println("Welcome again!");
}
}
}
class receiveWord extends Thread//蚚衾諉彶督昢け楷冞徹懂腔秏洘
{
private static DataInputStream DIS;
Socket cSocket;
public receiveWord(Socket C)
{
try{
cSocket=C;
DIS=new DataInputStream(cSocket.getInputStream());
}
catch(Exception e)
{
e.printStackTrace();
//System.out.println("Welcome again!");
}
}
public void run()
{
while(true)//悜遠腔淈泭蚕督昢傷楷冞徹懂腔秏洘
{
try{
String msg="";
msg=DIS.readUTF();
if(msg.equals(""))
{
continue;
}
else
{
System.out.println(msg);
}
}
catch(Exception e)
{
System.out.print(e);
//System.out.println("Welcome again!");
break;
}
}
}
}
import java.net.*;
public class Server {
/**
* @param args
*/
ServerSocket sSocket;
Socket cSocket;
public static Object[] totalUser=new Object[200];//蚚衾湔溫祥肮蚚誧腎翻腔SOCKET
public static int allUser=-1; //蚚衾隅絞ゴ衄嗣屾蚚誧
public static void main(String[] args) {
// TODO 赻雄汜傖源楊湔跦
Server server=new Server();
try{
int port;
port=1111;
server.sSocket=new ServerSocket(port);
System.out.println("Listening...");
while(true){
server.cSocket=server.sSocket.accept();
if(server.cSocket!=null)
{
//絞淈泭善綴憩參淈泭善腔SOCKET溫善OBJECT勤砓杅郪笢
totalUser[++allUser]=server.cSocket;
System.out.println("絞ゴ婓盄蚚誧:");
for(int i=0;i<=allUser;i++)
{
System.out.println(totalUser[i].toString());
}
Thread T=new Thread(new ListenClient(server,server.cSocket));
T.start();
}
}
}
catch(Exception e){
e.printStackTrace();
} }}