import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Client extends JFrame
implements ActionListener
{
JTextArea textreceive=new JTextArea();
JTextArea textsend =new JTextArea();
JButton button =new JButton ("Send");
BufferedReader in;
PrintWriter out;
public Client()
{
//init controls
setTitle("Client");
setBounds(50,50,500,400);
getContentPane().setLayout(null); getContentPane().add(textreceive);
getContentPane().add(textsend);
getContentPane().add(button);
button.addActionListener(this);
textreceive.setBounds(10,10,450,300);
textsend.setBounds(10,320,350,30);
button.setBounds(370,320,70,30);
}
public void startNet() throws IOException
{
Socket client=new Socket("127.0.0.1",9999);
try
{
System.out.println("Socket=" +client);
in=new BufferedReader(
new InputStreamReader(client.getInputStream()));
out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
client.getOutputStream())),true);
String str=null;
while ( true )
{
str = in.readLine();
System.out.println(str);
textreceive.append(str+"\n");
}
}
finally
{
client.close();
}
}
public void actionPerformed(ActionEvent event)
{
String str=textsend.getText();
if (!str.equals(""))
{
out.println(textsend.getText());
//out.println(textsend.getText());
out.flush();
textreceive.append(textsend.getText()+"\n");
textsend.setText("");
}
}
public static void main(String args[]) throws IOException
{
Client c=new Client();
c.show();
c.startNet();
}
}import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Server extends JFrame
implements ActionListener
{
JTextArea textreceive=new JTextArea();
JTextArea textsend=new JTextArea();
JButton button=new JButton("Send");
BufferedReader in;
PrintWriter out;
public Server ()
{
//init controls
setTitle("Server");
setBounds(50,50,500,400);
getContentPane().setLayout(null); getContentPane().add(textreceive);
getContentPane().add(textsend);
getContentPane().add(button);
textreceive.setBounds(10,10,450,300);
textsend.setBounds(10,320,350,30);
button.setBounds(370,320,70,30);
button.addActionListener(this);
}
public void listenClient() throws IOException
{
ServerSocket server=new ServerSocket(9999);
System.out.println("start:"+server);
textreceive.append("start"+server+"\n");
try
{
Socket s=server.accept();
try
{
System.out.println("connecting :"+s);
textreceive.append("connecting :"+s+"\n");
in=new BufferedReader(
new InputStreamReader(s.getInputStream()));
/*out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())));*/
out=new PrintWriter(s.getOutputStream());
String str=null;
while ( true )
{
str = in.readLine();
System.out.println(str);
textreceive.append(str+"\n");
}
}
finally
{
s.close();
}
}
finally
{
server.close();
}
}
public void actionPerformed(ActionEvent event)
{
String str=textsend.getText();
if (!str.equals(""))
{
out.println(textsend.getText());
//out.println(textsend.getText());
out.flush();
textreceive.append(textsend.getText()+"\n");
textsend.setText("");
}
}
public static void main(String args[]) throws IOException
{
Server s=new Server();
s.show();
s.listenClient();
}
}
不足之处请多提出来。多给建议。谢过了!
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Client extends JFrame
implements ActionListener
{
JTextArea textreceive=new JTextArea();
JTextArea textsend =new JTextArea();
JButton button =new JButton ("Send");
BufferedReader in;
PrintWriter out;
public Client()
{
//init controls
setTitle("Client");
setBounds(50,50,500,400);
getContentPane().setLayout(null); getContentPane().add(textreceive);
getContentPane().add(textsend);
getContentPane().add(button);
button.addActionListener(this);
textreceive.setBounds(10,10,450,300);
textsend.setBounds(10,320,350,30);
button.setBounds(370,320,70,30);
}
public void startNet() throws IOException
{
Socket client=new Socket("127.0.0.1",9999);
try
{
System.out.println("Socket=" +client);
in=new BufferedReader(
new InputStreamReader(client.getInputStream()));
out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
client.getOutputStream())),true);
String str=null;
while ( true )
{
str = in.readLine();
System.out.println(str);
textreceive.append(str+"\n");
}
}
finally
{
client.close();
}
}
public void actionPerformed(ActionEvent event)
{
String str=textsend.getText();
if (!str.equals(""))
{
out.println(textsend.getText());
//out.println(textsend.getText());
out.flush();
textreceive.append(textsend.getText()+"\n");
textsend.setText("");
}
}
public static void main(String args[]) throws IOException
{
Client c=new Client();
c.show();
c.startNet();
}
}import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Server extends JFrame
implements ActionListener
{
JTextArea textreceive=new JTextArea();
JTextArea textsend=new JTextArea();
JButton button=new JButton("Send");
BufferedReader in;
PrintWriter out;
public Server ()
{
//init controls
setTitle("Server");
setBounds(50,50,500,400);
getContentPane().setLayout(null); getContentPane().add(textreceive);
getContentPane().add(textsend);
getContentPane().add(button);
textreceive.setBounds(10,10,450,300);
textsend.setBounds(10,320,350,30);
button.setBounds(370,320,70,30);
button.addActionListener(this);
}
public void listenClient() throws IOException
{
ServerSocket server=new ServerSocket(9999);
System.out.println("start:"+server);
textreceive.append("start"+server+"\n");
try
{
Socket s=server.accept();
try
{
System.out.println("connecting :"+s);
textreceive.append("connecting :"+s+"\n");
in=new BufferedReader(
new InputStreamReader(s.getInputStream()));
/*out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())));*/
out=new PrintWriter(s.getOutputStream());
String str=null;
while ( true )
{
str = in.readLine();
System.out.println(str);
textreceive.append(str+"\n");
}
}
finally
{
s.close();
}
}
finally
{
server.close();
}
}
public void actionPerformed(ActionEvent event)
{
String str=textsend.getText();
if (!str.equals(""))
{
out.println(textsend.getText());
//out.println(textsend.getText());
out.flush();
textreceive.append(textsend.getText()+"\n");
textsend.setText("");
}
}
public static void main(String args[]) throws IOException
{
Server s=new Server();
s.show();
s.listenClient();
}
}
不足之处请多提出来。多给建议。谢过了!
解决方案 »
- 跪求银联POS终端mac算法
- 关于一个游戏设计的思考
- Socket问题
- Java现在是如何实现对进程的suspend()和resume() ?
- JComboBox的数据模型改变如何通知视图更新?
- 定时器出错??
- 请问:哪一本教材上讲UML各种图是结合C#代码或VB代码讲解的。只有uml图与代码结合起来才有利于理解依赖、聚合、...等等概念的实用之处
- ResultSetMetaData.getTableName在只读的Statement中返回为空???
- 请问:“怎样把一个APPLET程序代码加上主函数(MAIN)举例说明呀!
- 10分,请问为什么JDK1。3的DEMO有的不能在浏览器里面执行,有时候我写的一些小程序也不能够执行,为什么?
- eclipse写的swt程序的打包问题,在线等..........................
- to 大侠,如何在JAVA中设置系统时钟,精确到毫秒级?
另外,class Server 类是不是最好开两个线程,一个发送,一个接收。?
其实这个程序非常的简单,初学之人写的啦。
第一个文件是作为客户端。Socket client=new Socket("127.0.0.1",9999);连接服务器;
第二个文件做服务器,ServerSocket server=new ServerSocket(9999);Socket s=server.accept();等待连接,要先运行服务器程序,再运行客户端程序,建立tcp连接之后,服务器和客户端的区别就不存在了,通过流相互发送数据。构造函数是实现界面。
这个程序只能在两个特定的机器上实现一对一的聊天,要用多线程才能使服务器连接多个客户端。
如果一个用户连上了,服务端应该不会响应其他用户端了,始终忙于消息循环等待了。
而且楼主的程序始终不会退出,可以在客户端发送quit后,让socket关闭。要实现聊天室得用多线程,在accept之后产生一个服务线程负责发送和接受指定socket的信息,用集合对象保存每个客户,在服务端遍历集合类实现群发,不过得注意同步。有了这个基础再慢慢改进,聊天室就慢慢成型了。呵呵
有个问题想请教一下:
如何定时的检验客户的连接已经断开,并且关闭该连接呢
大家加我的QQ:284934272
写明CSDN
对我初步了解ServerSocket和Socket有很大的帮助
大约就是下面的样子:
U:what is your name?
C:computer
U:what are you doning?
C:computing我该选用swing组件中的哪一个呢??楼主和各路高手能不能给指点一下呢??