package example16_3;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Server1 extends JFrame{
private JTextField enter; //创建文本框
private JTextArea display; //创建显示文本域
PrintStream output; //输出流
DataInputStream input; // 输入流
public Server1(){
super( "Server" ); //引用父类的超类
Container c=getContentPane();
enter=new JTextField(); //创建文本框对象
enter.setEnabled( false ); // 文本框不可编辑
enter.addActionListener(new ActionListener(){ //为文本框加入事件监听
public void actionPerformed(ActionEvent e )
{ sendData(enter.getText()); } //将输入到文本框中的字符发送到客户端
});
c.add(enter, BorderLayout.NORTH); //定义文本框在容器中的位置
display=new JTextArea(); //创建文本域对象
c.add(new JScrollPane(display),BorderLayout.CENTER);
setSize(300,150);
show();
}
private void sendData(String s){ //将文本框中的字符传递给客户端
try{
output.println("Server: "+s); //将文本框中的内容发送到PrintStream缓冲区中
output.flush(); //将缓冲区中的数据发送到客户端
enter.setText(""); //设置文本框的内容为“空”
}
catch (Exception e){
display.append("\nError writing object");
}
}
public void connect(){
ServerSocket server; //服务器端的Socket接口对象
Socket socket; //客户端的Socket接口对象
int counter=1; //连接数
try{
// 第1步:创建一个监听,端口是4321,最大连接数是10
server=new ServerSocket(4321,10);
while(true){
// 第1步:等待一个请求
display.setText( "等待客户端的请求\n" );
socket=server.accept(); //等待客户端的请求
display.append("连接"+counter+"来自:"+socket.getInetAddress().getHostName() );
// 第3步:获得输入和输出流
output=new PrintStream(new BufferedOutputStream(socket.getOutputStream()));
output.flush();
input=new DataInputStream(new BufferedInputStream(socket.getInputStream()));
// 第4步:传递信息
String message="Server Connection successful!";
output.println(message); //将“message”字符串内容发送到PrintStream缓冲区中
output.flush(); //将缓冲区中的数据发送到客户端
enter.setEnabled(true);
do{
try{
message=(String)input.readLine();
/*读取InputStream缓冲区中的内容,也就是服务器端输入流的内容,也就是客户端PrintStream缓冲区中的内容,这样就获得客户端传递的信息*/
display.append("\n"+message); //在文本域显示客户端传递的信息
}
catch (IOException e){
display.append("Data Error");
}
}while(!message.equals("Client: end"));
// 第5步:拆除连接
display.append("\n关闭连接");
enter.setEnabled(false);
output.close();
input.close();
socket.close(); //关闭当前客户端请求,继续监听其他客户端
++counter;
}
}
catch(EOFException eof){
System.out.println( "Client terminated connection" );
}
catch (IOException e){
e.printStackTrace();
}
}
public static void main(String args[]){
Server1 app = new Server1();
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{ System.exit(0); }
});
app.connect();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java语言程序设计(第二版)李尊朝
共179个文件
java:159个
ppt:16个
html:4个
需积分: 10 9 下载量 15 浏览量
2015-07-02
16:41:37
上传
评论
收藏 1.2MB ZIP 举报
温馨提示
java语言程序设计(第二版)李尊朝老师的ppt文档以及相对应的程序,对于初学的学生比较实用。
资源推荐
资源详情
资源评论
收起资源包目录
java语言程序设计(第二版)李尊朝 (179个子文件)
HelloApplet.html 117B
ComputationApplet.html 103B
SimpleApplet.html 100B
DrawingApplet.html 95B
Server1.java 3KB
Client1.java 3KB
JRadio.java 2KB
JCheck.java 2KB
MyMenu.java 2KB
JCom.java 1KB
MouEvent.java 1KB
Exception6.java 1KB
ArrayC3.java 1KB
ArrayC6.java 1KB
KeysEvent.java 956B
File5.java 947B
IteEvent.java 932B
WinEvent.java 930B
File4.java 911B
MouEvent2.java 907B
MouEvent3.java 899B
Query.java 895B
Meta.java 869B
ArraySort.java 863B
Triangle.java 836B
Month1.java 831B
Insert1.java 826B
student.java 797B
UrlSite.java 797B
ActEvent.java 796B
Create.java 786B
Thread2.java 779B
StandardIn3.java 779B
Time1.java 773B
Connect.java 773B
Update1.java 757B
ArrayC.java 754B
BorLay.java 746B
Exception3.java 725B
Circle1.java 722B
Thread3.java 718B
Level.java 712B
Thread1.java 704B
Student1.java 695B
BookSell.java 681B
Teacher2.java 681B
KeysEvent2.java 672B
Thread4.java 661B
InnClassEvent.java 652B
HelloApplet.java 645B
TextEvent.java 643B
Delete.java 641B
Literature_book.java 638B
Teaching_book.java 637B
LabApp.java 633B
Teacher1.java 625B
Drop.java 623B
Science_book.java 621B
ButtEventApp.java 613B
Show1.java 607B
ArrayC7.java 597B
File9.java 596B
File2.java 595B
Swaping.java 582B
File8.java 578B
Time.java 576B
FlowLay.java 574B
ArrayC2.java 573B
File3.java 564B
Time.java 562B
Book.java 558B
ArrayC4.java 552B
Exception5.java 542B
Painting.java 515B
Integers.java 501B
TextApp.java 498B
Sum2.java 493B
Science_book.java 481B
GridLay.java 475B
Exception1.java 474B
Function.java 468B
Circle.java 465B
MyTime1.java 457B
OOperator.java 456B
Circle1.java 455B
Exception2.java 447B
HanoiTower.java 445B
Exception4.java 435B
Point.java 422B
ComputationApplet.java 419B
Primes.java 418B
FrmApp.java 414B
Point.java 407B
CCoin.java 406B
ButtApp.java 399B
Fatorials.java 395B
Person1.java 391B
Teaching_book.java 389B
Literature_book.java 388B
StringUse.java 382B
共 179 条
- 1
- 2
资源评论
小药瓶0
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功