77范文网 - 专业文章范例文档资料分享平台

JAVA实验报告4-远程数据传输(3)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

*

* @throws java.lang.Exception */

private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); setTitle(\聊天界面\

this.setResizable(false);

setSize(new Dimension(602, 515)); frame.setVisible(true);

jScrollPane1.setBounds(new Rectangle(2, 2, 445, 320)); jScrollPane2.setBounds(new Rectangle(1, 333, 448, 95)); jButton1.setBounds(new Rectangle(93, 441, 78, 31)); jButton1.setText(\发送\

jButton2.setBounds(new Rectangle(185, 441, 76, 31)); jButton2.setText(\清空\

jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this)); jTextArea1.setEditable(false);

jScrollPane3.setBounds(new Rectangle(458, 6, 139, 424));

jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this)); jTextArea2.addKeyListener(new Frame1_jTextArea2_keyAdapter(this)); contentPane.add(jScrollPane2);

jScrollPane2.getViewport().add(jTextArea2); contentPane.add(jScrollPane1, null);

jScrollPane1.getViewport().add(jTextArea1); contentPane.add(jScrollPane3); contentPane.add(jButton1); contentPane.add(jButton2);

jScrollPane3.getViewport().add(jList1); this.setVisible(false); try {

InetAddress address=InetAddress.getLocalHost();

socket = new Socket(address.getHostAddress(), port); in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream()); } catch (Exception e) { setVisible(true);

jTextArea2.setText(\无法与服务器联接,请退出...\}

if (thread == null) {

thread = new Thread(this); thread.start(); }

frame.setClection(socket, in, out);

}

public boolean setClection1() {

frame.setClection(socket, in, out); return frame.bool; }

public void setClection2() { wenBen = jTextArea2.getText(); if (wenBen.equals(\

jTextArea2.setText(\return; }

try {

out.writeUTF(frame.name + \jTextArea2.setText(\} catch (Exception ee) { } }

public void run() { String sl = null; String ss = null; String s = null; while (true) { try {

sl = in.readUTF();

} catch (Exception ee) { vector.removeAllElements(); jList1.setListData(vector);

jTextArea2.setText(\巳经与服务器断开...\return; }

if(sl.startsWith(\可以注册\frame.setVisible(false); setVisible(true);

setTitle(\昵称...\(见教材) }

else if(sl.startsWith(\该用户名已注册\

frame.jTextField1.setText(\请重新输入昵称\continue; }

else if (sl.startsWith(\新用户\

StringTokenizer st = new StringTokenizer(sl, \ss = null; s = null;

ss = st.nextToken(); s = st.nextToken();

vector.addElement(s);

jList1.setListData(vector); continue; }

else if (sl.startsWith(\下线了\

StringTokenizer st = new StringTokenizer(sl, \ss = null; s = null;

ss = st.nextToken(); s = st.nextToken();

vector.removeElement(s); jList1.setListData(vector); continue; }

jTextArea1.append(sl + \} }

public void jButton1_actionPerformed(ActionEvent e) { setClection2(); }

public void jButton2_actionPerformed(ActionEvent e) { jTextArea1.setText(\}

public void jTextArea2_keyPressed(KeyEvent e) {

if(e.isControlDown() &&e.getKeyCode()==KeyEvent.VK_ENTER ){ setClection2(); } } }

class Frame1_jTextArea2_keyAdapter extends KeyAdapter { private Frame1 adaptee;

Frame1_jTextArea2_keyAdapter(Frame1 adaptee) { this.adaptee = adaptee; }

public void keyPressed(KeyEvent e) { adaptee.jTextArea2_keyPressed(e); } }

class Frame1_jButton2_actionAdapter implements ActionListener { private Frame1 adaptee;

Frame1_jButton2_actionAdapter(Frame1 adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.jButton2_actionPerformed(e);

} }

class Frame1_jButton1_actionAdapter implements ActionListener { private Frame1 adaptee;

Frame1_jButton1_actionAdapter(Frame1 adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed((见教材)); } }

四、 结论

客户端/服务器模式程序设计中,服务器使用ServerSocket监听指定端口,端口可以随意指定,等待客户连接请求,客户连接以后,会话产生,完成会话后,关闭连接。客户端使用Socket对网络上某一个指定IP的服务器上的端口发出连接请求,一旦连接成功,打开会话,会话完成后,关闭Socket,客户端自身不需要指定端口,通常会临时、动态地分配一个1024以上的端口供其与服务器连接。

五、 问题与讨论

在网络上实际应用的聊天活动,并不是在客户端与服务器之间进行聊

天,而是在客户端之间进行聊天通信。服务器主程序监听一端口,等待客户接入,同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。而线程将接收到的信息转给所有与之连接的客户。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库JAVA实验报告4-远程数据传输(3)在线全文阅读。

JAVA实验报告4-远程数据传输(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/408496.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: