|

楼主 |
发表于 19-10-2006 01:08 AM
|
显示全部楼层
对了...
package .Com.xxx 的.Com 是什么来的? |
|
|
|
|
|
|
|
发表于 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
- import javax.swing.*;
- import java.awt.event.*;
- import java.net.*;
- import java.io.*;
- class myclient implements KeyListener
- {
- //References
- JFrame fr;
- JTextArea jta;
- JTextArea jta2;
- JScrollPane jsp;
- JScrollPane jsp2;
- Socket s;
- InputStream inputS;
- OutputStream outputS;
-
- class ObtainMessage implements Runnable
- {
- public void run()
- {
- for (;;)
- {
- try
- {
- byte[] buflen=new byte[1];
- inputS.read(buflen,0,1);
- byte [] buf=new byte[buflen[0]];
- inputS.read(buf,0,buflen[0]);
- jta.append(new String(buf));
- }
- catch (Exception ex)
- {}
-
- }
- }
- }
- public static void main(String args[])
- {
- myclient mc=new myclient();
-
- }
- public myclient()
- {
- fr=new JFrame("Client");
- jta = new JTextArea();
- jta2 = new JTextArea();
- jsp= new JScrollPane(jta);
- jsp2= new JScrollPane(jta2);
- jsp.setBounds(10,10,270,200);
- jsp2.setBounds(10,220,270,50);
-
- fr.getContentPane().add(jsp);
- fr.getContentPane().add(jsp2);
-
- jta.setEditable(false);
- jta2.addKeyListener(this);
- fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- fr.setBounds(50, 50, 300, 350);
- fr.getContentPane().setLayout(null);
- fr.setVisible(true);
- try
- {
- s= new Socket("127.0.0.1",8000);
- inputS= s.getInputStream();
- outputS= s.getOutputStream();
-
- Thread listen= new Thread(new ObtainMessage());
- listen.start();
-
- }
- catch (Exception ex)
- {
- System.out.println("no connection");
- }
-
- }
-
- public void keyReleased(KeyEvent e)
- {
- switch(e.getKeyCode())
- {
- case KeyEvent.VK_ENTER:
- {
- try
- {
- String buf=jta2.getText();
- byte[] len= {(byte)(buf.length() & 0xff)};
- outputS.write(len,0,1);
- outputS.write(buf.getBytes(),0,buf.length());
- }
- catch (Exception ex)
- {}
- jta2.setText("");
- break;
- }
- }
- }
- public void keyTyped(KeyEvent e){}
- public void keyPressed(KeyEvent e){}
- }
复制代码
server
[ 本帖最后由 tensaix2j 于 22-10-2006 05:08 PM 编辑 ] |
|
|
|
|
|
|
| |
本周最热论坛帖子
|