`

Java程序(聊天)

阅读更多

import java.io.*; 
public class ServerClass{ 
public static void main(String args[]){ 
int i=0; 
try{ 
ServerSocket ss=new ServerSocket(2345);//为该服务器开设一个端口,该端口供客户机程序来访问。 
System.out.println("服务器启动......"); 
while(true){ 
Socket sock=ss.accept();//sock对象接收客户机的连接请求,程序运行到这里将处于等待状态。 
i++; 
System.out.println("接受连接请求"+i); 
PrintStream out=new PrintStream(sock.getOutputStream());//获得输出流 
out.println("你好"); 
out.close(); 
sock.close(); 
} 
}catch(IOException e){ 
System.out.println(e); 
} 
} 
} 


import java.io.*; 
import java.net.*; 
public class AClient{ 
public static void main(String args[]){ 
try{ 
Socket sock=new Socket("127.0.0.1",2345);//根据具体的(正在用的机器的)IP和端口,创建一个Socket对象 
BufferedReader in=new BufferedReader(new InputStreamReader(sock.getInputStream()));//获得输入流。 
String s=in.readLine();//从输入流读入一行内容。 
System.out.println(s);//打印出 
in.close(); 
}catch(IOException e){} 
} 
} 



import java.io.*; 
import java.net.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 
/** 
用户界面ServerUI 
*/ 
public class ServerUI extends JFrame{ 
JTextArea mainArea; 
JTextArea sendArea; 
JTextField indexArea; 
SvrCom server; 
public void setServer( SvrCom server ) 
{ this.server = server; } 
public ServerUI() 
{ 
super("服务器端"); 
Container contain = getContentPane(); 
contain.setLayout( new BorderLayout() ); 
mainArea = new JTextArea(); 
JScrollPane mainAreaP = new JScrollPane( mainArea ); 
JPanel panel = new JPanel(); 
panel.setLayout( new BorderLayout() ); 
sendArea = new JTextArea(3, 8); 
JButton sendBtn = new JButton("发送"); 
sendBtn.addActionListener( new ActionListener()//注册动作监听器 
{ 
public void actionPerformed(ActionEvent ae) 
{ 
server.sendMsg(sendArea.getText());//把信息传递到客户端 
mainArea.append( "【服务器】" + sendArea.getText() + "\n" );//把信息显示在服务器的聊天记录区域 
sendArea.setText(""); 
} 
} 
); 
JPanel tmpPanel = new JPanel(); 
indexArea = new JTextField(2); 
indexArea.setText("0"); 
tmpPanel.add( sendBtn ); 
tmpPanel.add( indexArea ); 
panel.add( tmpPanel, BorderLayout.EAST ); 
panel.add(sendArea, BorderLayout.CENTER ); 
contain.add( mainAreaP, BorderLayout.CENTER ); 
contain.add( panel, BorderLayout.SOUTH ); 
setSize( 500, 300); 
setVisible( true ); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
public static void main(String[] args) 
{ 
ServerUI ui = new ServerUI(); 
SvrCom server = new SvrCom( ui );//创建并启动网络通讯线程,准备接受客户端数据包 
} 
} 



/** 
通讯类SvrCom负责守候数据到来 
*/ 
class SvrCom extends Thread//网络通讯类 
{ 
Socket client; 
ServerSocket soc; 
BufferedReader in; 
PrintWriter out; 
ServerUI ui; 
// ChatServer server; 

public SvrCom( ServerUI ui ){ //初始化SvrCom类 
this.ui = ui; 
ui.setServer( this ); 
try { 
soc = new ServerSocket(6666 ); //开设服务器端口6666 
System.out.println( "启动服务器成功,等待端口号:6666" ); 
client = soc.accept();//当客户机请求连接时,创建一条链接 
System.out.println( "连接成功!来自" + client.toString() ); 
in = new BufferedReader( new InputStreamReader( client.getInputStream()) ); 
out = new PrintWriter( client.getOutputStream() , true); 
} catch( Exception ex ) { System.out.println( ex ); } 
start(); 
} 
public void run () {// 用于监听客户端发送来的信息 
String msg = ""; 
while( true ) 
{ 
try { 
msg = in.readLine();//从in对象上读数据信息 
} 
catch( SocketException ex ) { 
System.out.println(ex); 
break; 
} 
catch( Exception ex ) { System.out.println(ex); } 
if( msg!=null && msg.trim()!="" ) 
{ 
System.out.println(">>" + msg ); 
ui.mainArea.append( msg + "\n" ); 
} 
} 
} 
public void sendMsg( String msg ) {// 用于发送信息 
try { 
out.println("【服务器】" + msg );//把信息写入输出流 
} 
catch(Exception e) { 
System.out.println( e ); 
} 
} 
} 




import java.io.*; 
import java.net.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 
/** 
用户界面ClientUI 
*/ 
public class ClientUI extends JFrame 
{ 
JTextArea mainArea; 
JTextArea sendArea; 
ChatClient client; 
JTextField ipArea; 
JButton btnLink; 
public void setClient( ChatClient client ) 
{ this.client = client; } 
public ClientUI() 
{ 
super("客户端"); 
Container contain = getContentPane(); 
contain.setLayout( new BorderLayout() ); 
mainArea = new JTextArea(); 
JScrollPane mainAreaP = new JScrollPane( mainArea );//为文本区添加滚动条 
JPanel panel = new JPanel(); 
panel.setLayout( new BorderLayout()); 
sendArea = new JTextArea(3, 8); 
JButton sendBtn = new JButton("发送"); 
sendBtn.addActionListener( new ActionListener() 
{ 
public void actionPerformed(ActionEvent ae) 
{ 
client.sendMsg( sendArea.getText() ); 
mainArea.append( "【客户端】"+sendArea.getText() + "\n" ); 
sendArea.setText(""); 
} 
} 
); 
JPanel ipPanel = new JPanel(); 
ipPanel.setLayout( new FlowLayout( FlowLayout.LEFT , 10, 10 ) ); 
ipPanel.add( new JLabel("服务器:") ); 
ipArea = new JTextField( 12 ) ; 
ipArea.setText( "127.0.0.1" ); 
ipPanel.add( ipArea ); 
btnLink = new JButton("连接"); 
ipPanel.add( btnLink ); 
btnLink.addActionListener( new ActionListener() 
{ 
public void actionPerformed(ActionEvent ae) 
{ 
client = new ChatClient( ipArea.getText() , 6666, ClientUI.this );//创建socket对象 
ClientUI.this.setClient( client ); 
} 
} 
); 
panel.add( sendBtn, BorderLayout.EAST ); 
panel.add( sendArea, BorderLayout.CENTER ); 
contain.add( ipPanel, BorderLayout.NORTH ); 
contain.add( mainAreaP, BorderLayout.CENTER ); 
contain.add( panel, BorderLayout.SOUTH ); 
setSize( 500, 300); 
setVisible( true ); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
public static void main(String[] args) 
{ 
ClientUI ui = new ClientUI(); 
} 
} 



/** 
通讯类ChatClient负责守候数据到来 
*/ 
class ChatClient extends Thread 
{ 
Socket sc;// 对象sc,用来处理与服务?鞯耐ㄐ? 
BufferedReader in;//声明输入流缓冲区,用于存储服务器发来的信息 
PrintWriter out;//声明打印输出流,用于信息的发送 
ClientUI ui; 

public ChatClient( String ip, int port, ClientUI ui ){//初始化ChatClient类 
this.ui = ui; 
try{ 
sc = new Socket(ip , port); // 创建sc, 用服务器ip和端口作参数 
System.out.println("已顺利联接到服务器。"); 
out = new PrintWriter( sc.getOutputStream(), true ); 
in = new BufferedReader( new InputStreamReader( sc.getInputStream() ) ); 
} 
catch(Exception e) { 
System.out.println( e ); 
} 
start(); 
} 
public void run () { // 用于监听服务器端发送来的信息 
String msg = ""; 
while( true ) 
{ 
try { 
msg = in.readLine();//从缓冲区读入一行字符存于msg 
} catch( SocketException ex ) { System.out.println(ex); break; } 
catch( Exception ex ) { System.out.println(ex); } 
if( msg!=null && msg.trim()!="" ) 
{//若msg信息不为空 
System.out.println(">>" + msg ); 
ui.mainArea.append( msg + "\n" );//把msg信息添加到客户端的文本区域内 
} 
} 
} 
public void sendMsg( String msg ) {// 用于发送信息 
try { 
out.println("【客户端】" + msg ); 
} 
catch(Exception e) { 
System.out.println( e ); 
} 
} 
} 
分享到:
评论
4 楼 smalltiger1984 2009-05-18  
import java.io.*;   
public class ServerClass{   
public static void main(String args[]){   
int i=0;   
try{   
ServerSocket ss=new ServerSocket(2345);//为该服务器开设一个端口,该端口供客户机程序来访问。   
System.out.println("服务器启动......");   
while(true){   
Socket sock=ss.accept();//sock对象接收客户机的连接请求,程序运行到这里将处于等待状态。   
i++;   
System.out.println("接受连接请求"+i);   
PrintStream out=new PrintStream(sock.getOutputStream());//获得输出流   
out.println("你好2");   
out.close();   
sock.close();   
}   
}catch(IOException e){   
System.out.println(e);   
}   
}   
3 楼 zhou2324 2009-05-18  
import java.io.*; 
public class ServerClass{ 
public static void main(String args[]){ 
int i=0; 
try{ 
ServerSocket ss=new ServerSocket(2345);//为该服务器开设一个端口,该端口供客户机程序来访问。 
System.out.println("服务器启动......"); 
while(true){ 
Socket sock=ss.accept();//sock对象接收客户机的连接请求,程序运行到这里将处于等待状态。 
i++; 
System.out.println("接受连接请求"+i); 
PrintStream out=new PrintStream(sock.getOutputStream());//获得输出流 
out.println("你好"); 
out.close(); 
sock.close(); 
} 
}catch(IOException e){ 
System.out.println(e); 
} 
} 
} 

2 楼 xf.zhouwenjun 2009-05-16  
yuantong 写道

老兄,把代码格式化行不?代码放到代码片段不是更好?

呵呵,下次 我再贴的时间 注意
1 楼 yuantong 2009-05-13  
老兄,把代码格式化行不?代码放到代码片段不是更好?

相关推荐

    简单的java程序聊天软件

    【标题】"简单的Java程序聊天软件"涉及到的核心技术是基于Java语言实现的网络通信,它构建了一个服务端(ChatServer)和客户端(ChatClient)之间的交互系统,允许两者进行实时的文本聊天。在这个项目中,Java的...

    基于java的聊天小程序

    Java聊天小程序是一款基于Java语言开发的简单通讯应用,它利用了Java Socket编程技术来实现客户端与服务器端的实时通信。Socket在计算机网络中扮演着重要角色,它是TCP/IP协议族的一部分,提供了进程间的网络通信...

    java web聊天程序

    Java Web聊天程序是一种基于Web的实时通信应用,它允许用户通过浏览器进行实时交流。这个程序的核心技术栈包括Java、Web技术和WebSocket协议。下面将详细解释这些知识点。 1. **Java**:Java是一种广泛使用的面向...

    JAVA聊天程序JAVA聊天程序JAVA聊天程序3

    JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序JAVA聊天程序

    用Java实现的一个聊天程序

    【标题】:“用Java实现的一个聊天程序” 在IT领域,编程语言Java因其强大的跨平台能力和丰富的库支持,常被用于开发各种类型的应用程序,包括聊天程序。本项目是一个基于客户端-服务器(Client-Server,简称CS)...

    java局域网聊天程序

    java局域网聊天程序,java局域网聊天程序,java局域网聊天程序,java局域网聊天程序,java局域网聊天程序,java局域网聊天程序

    JAVA简单聊天程序

    我用JAVA的servlet写的这个小聊天程序,总共才几KB,但可以在不同的电脑上进行多人对话,删除记录等,我把数据库验证登陆写进去了,你若不想要这个登陆程序可以删掉,那样就不需要登陆直接开始聊天了。这个程序结构...

    java实现聊天程序

    在Java编程语言中实现一个聊天程序是一项常见的任务,它涵盖了多个关键知识点,包括网络通信、数据库管理和用户界面设计。下面将详细阐述这些方面。 首先,网络通信是聊天程序的基础,通常使用TCP或UDP协议。在Java...

    JAVA聊天程序JAVA聊天程序2(API)

    【标题】:“JAVA聊天程序JAVA聊天程序2(API)” 【描述】:此项目是一个基于JAVA语言实现的聊天程序,可能包含多个版本或迭代,强调了API(应用程序接口)的使用,意味着它可能通过API与其他系统或服务进行交互,...

    Java SE程序 qq聊天

    Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天Java SE程序 qq聊天...

    Java简易聊天程序

    Java简易聊天程序是一种基于Java编程语言实现的交互式通信应用,它允许用户通过网络进行文本聊天。这个程序的核心概念和关键技术主要包括多线程、网络编程、输入/输出流以及简单的用户界面设计。以下是对这些关键...

    JAVA局域网聊天程序

    【JAVA局域网聊天程序】是一种使用Java编程语言开发的通信应用,专为在局域网环境下实现用户之间的即时通讯而设计。这个程序通常包含了服务器端和客户端两部分,允许在同一网络中的多台设备间进行消息传递。通过这种...

    Java Socket 聊天程序(图形界面)

    实现Java Socket聊天多线程编程,图形化界面,多人聊天(群聊),私人聊天,是基于本地模拟的Java聊天程序。 Java Socket聊天程序是我用了三天的时间写出来,用Netbeans建的工程,图形化界面是Netbeans拖拉出来的,...

    java聊天小程序.java聊天小程序

    java聊天小程序。java聊天小程序java聊天小程序。java聊天小程序。java聊天小程序。

    Java聊天室程序(java)

    Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)...

    Java多人聊天程序

    Java多人聊天程序是一种基于Java编程语言开发的交互式通信应用,它允许多个用户在同一平台上进行实时交流。在本文中,我们将深入探讨这个程序的核心技术、设计原则以及实现的关键知识点。 首先,Java作为后端开发的...

    Java聊天室程序

    简单的Java聊天室程序简单的Java聊天室程序简单的Java聊天室程序简单的Java聊天室程序简单的Java聊天室程序简单的Java聊天室程序简单的Java聊天室程序

    Java聊天室程序(java).zip

    Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)Java聊天室程序(java)...

    java tcp 聊天程序

    Java TCP聊天程序是一种基于TCP协议实现的网络通信应用,它允许在局域网内的设备之间进行实时的文字聊天、在线状态追踪以及用户管理等操作。在这个项目中,开发者可能使用了Java语言的核心网络编程API,包括Socket和...

    Java聊天程序.

    【Java聊天程序】是一种使用Java编程语言开发的交互式应用程序,它允许用户通过网络进行实时通信。这个程序的核心是客户端和服务器端的架构,其中ChatServer是服务器端的部分,负责处理来自多个客户端的连接请求,并...

Global site tag (gtag.js) - Google Analytics