佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: 伪君子

[Java]前辈请教导

[复制链接]
 楼主| 发表于 19-10-2006 01:08 AM | 显示全部楼层
对了...
package .Com.xxx 的.Com 是什么来的?
回复

使用道具 举报


ADVERTISEMENT

发表于 19-10-2006 12:05 PM | 显示全部楼层
會不會是還沒有set path ,所以不能用javac ?

example

setpath="c:/jkd1.5/bin/"
回复

使用道具 举报

发表于 22-10-2006 03:39 PM | 显示全部楼层
no time to see your code and no time to type in chinese, going out, but can simply give you an idea to do it.
use thread in server to listen for input, when the input is not null, then read the input and cast to client.
run two files separately, server is opening serversocket and client is socket to the server.
that's it.
hope this can help.
i am going out la, bb.
回复

使用道具 举报

发表于 22-10-2006 03:41 PM | 显示全部楼层
楼上两位,一个没爬贴,一个读贴没看日期。。
回复

使用道具 举报

发表于 22-10-2006 04:38 PM | 显示全部楼层
我也刚学java不久。。
这一贴然我很想尝试用java做个chat program.
回复

使用道具 举报

发表于 22-10-2006 04:43 PM | 显示全部楼层
刚完成的 chat program.
.
楼主这一贴然我很想尝试用java做个chat program.
只是不知为何multicast不work,所以就用普通的stream socket..

我的方法是server把所有接到的client socket堆在一个arraylist里。。
然后每次拿到msg from任何一个socket,就iterate那个arraylist..
来write到各个socket..







现在,有个问题。。
如何让server知道client已经关掉了。。


client


  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import java.net.*;
  4. import java.io.*;

  5. class myclient implements KeyListener
  6. {
  7.         //References
  8.         JFrame fr;       
  9.         JTextArea jta;       
  10.         JTextArea jta2;
  11.         JScrollPane jsp;
  12.         JScrollPane jsp2;
  13.         Socket s;
  14.         InputStream inputS;
  15.         OutputStream outputS;

  16.                
  17.         class ObtainMessage implements Runnable
  18.         {
  19.                 public void run()
  20.                 {
  21.                         for (;;)
  22.                         {                       
  23.                                 try
  24.                                 {
  25.                                         byte[] buflen=new byte[1];
  26.                                         inputS.read(buflen,0,1);
  27.                                         byte [] buf=new byte[buflen[0]];
  28.                                         inputS.read(buf,0,buflen[0]);
  29.                                         jta.append(new String(buf));
  30.                                 }
  31.                                 catch (Exception ex)
  32.                                 {}
  33.                                
  34.                         }

  35.                 }
  36.         }


  37.         public static void main(String args[])
  38.         {
  39.                 myclient mc=new myclient();
  40.                
  41.         }

  42.         public myclient()
  43.         {

  44.                 fr=new JFrame("Client");
  45.                 jta = new JTextArea();
  46.                 jta2 = new JTextArea();
  47.                 jsp= new JScrollPane(jta);
  48.                 jsp2= new JScrollPane(jta2);

  49.                 jsp.setBounds(10,10,270,200);
  50.                 jsp2.setBounds(10,220,270,50);
  51.                
  52.                 fr.getContentPane().add(jsp);
  53.                 fr.getContentPane().add(jsp2);
  54.                
  55.                 jta.setEditable(false);
  56.                 jta2.addKeyListener(this);

  57.                 fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  58.                 fr.setBounds(50, 50, 300, 350);
  59.                 fr.getContentPane().setLayout(null);
  60.                 fr.setVisible(true);

  61.                 try
  62.                 {
  63.                         s= new Socket("127.0.0.1",8000);
  64.                         inputS= s.getInputStream();
  65.                         outputS= s.getOutputStream();
  66.                        
  67.                         Thread listen= new Thread(new ObtainMessage());
  68.                         listen.start();
  69.                                                                                
  70.                 }
  71.                 catch (Exception ex)
  72.                 {
  73.                         System.out.println("no connection");
  74.                 }
  75.                        
  76.         }

  77.        

  78.         public void keyReleased(KeyEvent e)
  79.         {
  80.                 switch(e.getKeyCode())
  81.                 {
  82.                         case KeyEvent.VK_ENTER:
  83.                         {
  84.                                 try
  85.                                 {
  86.                                         String buf=jta2.getText();
  87.                                         byte[] len= {(byte)(buf.length() & 0xff)};
  88.                                         outputS.write(len,0,1);
  89.                                         outputS.write(buf.getBytes(),0,buf.length());
  90.                                 }
  91.                                 catch (Exception ex)
  92.                                 {}
  93.                                 jta2.setText("");
  94.                                 break;
  95.                         }
  96.                 }
  97.         }
  98.         public void keyTyped(KeyEvent e){}
  99.         public void keyPressed(KeyEvent e){}

  100. }


复制代码







server

  1. import java.net.*;
  2. import java.io.*;
  3. import java.util.*;

  4. class myserver
  5. {
  6.        
  7.         ServerSocket ss;
  8.         ArrayList cl;
  9.        
  10.         myserver()
  11.         {
  12.                 try
  13.                 {
  14.                         ss=new ServerSocket(8000);
  15.                         cl=new ArrayList();
  16.                        
  17.                         for (;;)  //Accept infinite clients
  18.                         {
  19.                                 try
  20.                                 {
  21.                                         Socket s= ss.accept();
  22.                                         System.out.println("Someone is in");
  23.                                         cl.add(s);
  24.                                         System.out.println(cl.size() + " people are in");
  25.                                        
  26.                                         //Spawn new thread to handle new client
  27.                                         Thread t=new Thread(new ClientHandler(s));
  28.                                         t.start();
  29.                                        
  30.                                 }
  31.                                 catch (Exception e)
  32.                                 {}
  33.                         }

  34.                                
  35.                                                
  36.                 }
  37.                 catch (Exception e)
  38.                 {
  39.                         System.out.println(e.toString());
  40.                 }       

  41.         }       

  42.         public static void main(String args[])
  43.         {
  44.                 new myserver();
  45.                                                
  46.         }




  47.        

  48.         class ClientHandler implements Runnable
  49.         {
  50.                 Socket s;
  51.                 InputStream inputS;
  52.                
  53.                 ClientHandler(Socket s)
  54.                 {
  55.                         try
  56.                         {
  57.                                 this.s=s;
  58.                                 this.inputS = s.getInputStream();
  59.                                
  60.                         }
  61.                         catch (Exception e)
  62.                         {}
  63.                        
  64.                 }

  65.                 public void run()
  66.                 {
  67.                         try
  68.                         {
  69.                                 for (;;)
  70.                                 {
  71.                                         byte[] buflen=new byte[1];
  72.                                         inputS.read(buflen,0,1);
  73.                                         byte [] buf=new byte[buflen[0]];
  74.                                         inputS.read(buf,0,buflen[0]);
  75.                                         System.out.print(new String(buf));
  76.                                        
  77.                                         int i;
  78.                                         for (i=0;i<cl.size();i++)
  79.                                         {

  80.                                                 OutputStream outputS=((Socket)cl.get(i)).getOutputStream();
  81.                                                 outputS.write(buflen,0,1);
  82.                                                 outputS.write(buf,0,buflen[0]);

  83.                                         }

  84.                                        
  85.                                        
  86.                                 }                       
  87.                         }
  88.                         catch (Exception e)
  89.                         {}

  90.                 }
  91.         }


  92.                


  93. }
复制代码



[ 本帖最后由 tensaix2j 于 22-10-2006 05:08 PM 编辑 ]
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 25-8-2025 02:20 AM , Processed in 0.096329 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表