实验08Java之网络编程Word文档下载推荐.docx

上传人:b****2 文档编号:1521651 上传时间:2023-04-30 格式:DOCX 页数:13 大小:23.79KB
下载 相关 举报
实验08Java之网络编程Word文档下载推荐.docx_第1页
第1页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第2页
第2页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第3页
第3页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第4页
第4页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第5页
第5页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第6页
第6页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第7页
第7页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第8页
第8页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第9页
第9页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第10页
第10页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第11页
第11页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第12页
第12页 / 共13页
实验08Java之网络编程Word文档下载推荐.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验08Java之网络编程Word文档下载推荐.docx

《实验08Java之网络编程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验08Java之网络编程Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。

实验08Java之网络编程Word文档下载推荐.docx

//将字节流变为字符流,有转换功能

OutputStreamWriterout=null;

try{

client=newSocket("

localhost"

4331);

}catch(UnknownHostExceptione2){

//TODOAuto-generatedcatchblock

e2.printStackTrace();

}catch(IOExceptione2){

}

in=newInputStreamReader(client.getInputStream());

}catch(IOExceptione1){

e1.printStackTrace();

out=newOutputStreamWriter(client.getOutputStream());

BufferedWriterbout=newBufferedWriter(out);

BufferedReaderbin=newBufferedReader(in);

while(true){//从客户端向服务器传输数据

System.out.println("

请输入'

Time'

或者'

Exit'

"

);

Scannerreader=newScanner(System.in);

try{

bout.write(reader.next());

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

bout.newLine();

bout.flush();

Stringmassage=null;

massage=bin.readLine();

if(massage.equals("

Bye"

)){

System.out.println("

From 

server:

 

+massage);

break;

else

System.out.println("

从服务器返回的时间:

}

client.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

importjava.io.DataOutputStream;

import.ServerSocket;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassServer{

ServerSocketserver=null;

server=newServerSocket(4331);

System.out.println("

服务器启动完毕"

等待客户端连接..."

Socketyou=null;

you=server.accept();

InputStreamReaderin=null;

OutputStreamWriterout=null;

in=newInputStreamReader(you.getInputStream());

out=newOutputStreamWriter(you.getOutputStream());

BufferedWriterbout=newBufferedWriter(out);

BufferedReaderbin=newBufferedReader(in);

if(you.isConnected()){

客户端名称为"

+you.getInetAddress().getHostAddress()

+"

连接成功!

while(true){

Strings=null;

try{

s=bin.readLine();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

if(s.equals("

Time"

)){

Datedate=newDate();

客户端请求当前时间"

SimpleDateFormatformat=newSimpleDateFormat(

"

yyyy/MM/ddHH:

mm:

ss"

}elseif(s.equals("

exit"

bout.write("

bye!

!

you.close();

[基本要求]编写完整程序。

实验题2编写一数据报通信程序,实现简单的聊天功能。

图3.9聊天程序界面

[基本要求]两人一组编写完整程序。

“聊天内容”和“输入文本”分别为当前聊天的历史信息和当前要传送出去的聊天文本。

“确定”、“清空”、“退出”三个按钮分别实现发送当前聊天文本、清空当前聊天文本和退出系统的功能。

importjava.awt.*;

importjava.awt.event.*;

import.*;

importjavax.swing.*;

publicclassUDPmessageextendsJFrameimplementsActionListener{

privateJTextAreatext;

privateJTextFieldipText;

privateJTextFieldsendText;

privateJButtonbutton1;

privateJButtonbutton2;

privateJButtonbutton3;

privateDatagramSocketsocket;

privateJScrollBarvsBar;

publicUDPmessage(){

setTitle("

UDP聊天程序"

setBounds(100,100,400,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(newBorderLayout());

text=newJTextArea();

text.setEditable(false);

JScrollPanetextPanel=newJScrollPane(text);

vsBar=textPanel.getVerticalScrollBar();

add(textPanel,BorderLayout.CENTER);

JPanelpanel=newJPanel();

//一定要有的

BorderLayoutpanelLayout=newBorderLayout();

panelLayout.setHgap(5);

panel.setLayout(panelLayout);

ipText=newJTextField("

192.168.1.103"

panel.add(ipText,BorderLayout.WEST);

sendText=newJTextField();

panel.add(sendText,BorderLayout.CENTER);

button1=newJButton("

确定"

//button2=newJButton("

清空"

//button3=newJButton("

退出"

panel.add(button1,BorderLayout.EAST);

add(panel,BorderLayout.SOUTH);

setVisible(true);

server();

button1.addActionListener(this);

privatevoidserver(){

socket=newDatagramSocket(9527);

}catch(SocketExceptione){

}//实例化数据报套接字

byte[]buf=newbyte[1024];

finalDatagramPacketdpl=newDatagramPacket(buf,buf.length);

//创建接收数据的数据包 

Runnablerunnable=newRunnable(){

publicvoidrun(){

while(true){

try{

Thread.sleep(100);

}catch(InterruptedExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

socket.receive(dpl);

}catch(IOExceptione){

intlength=dpl.getLength();

Stringmessage=newString(dpl.getData(),0,length);

//获取数据包的字符串信息 

Stringip=dpl.getAddress().getHostAddress();

if(!

InetAddress.getLocalHost().getHostAddress().equals(ip));

}catch(UnknownHostExceptione){

text.append(ip+"

:

\n 

+message+"

\n"

vsBar.setValue(vsBar.getMaximum());

//控制信息滚动

};

publicvoidactionPerformed(ActionEventev){

Stringip=ipText.getText();

//获取IP文本框内容

InetAddressaddress=null;

address=InetAddress.getByName(ip);

byte[]data=sendText.getText().getBytes();

//获取发送的数据

DatagramPacketdp=newDatagramPacket(data,data.length,address,9527);

//定义数据包

Stringmyip=null;

myip=InetAddress.getLocalHost().getHostAddress();

}catch(UnknownHostExceptione1){

}//获取本机IP 

//将发送信息添加到信息接收文本域中 

text.append(myip+"

+sendText.getText()+"

socket.send(dp);

}//发送数据包

sendText.setText(null);

publicstaticvoidmain(Stringargs[]){

//JFrameframe=newUDPmessage();

UDPmessageudp=newUDPmessage();

udp.setVisible(true);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2