- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
流、多线程和网络编程
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 在构造方法的开始部分设定了窗口的基本属性,添加各种对象,并将自身注册为文本框的事件监听者。当用户在文本框里按下回车键时将激发键盘动作事件,程序定义了该事件处理方法。使用匿名类为窗口添加关闭功能。 构造方法的第二部分是一个try...catch块,包含了服务器端编程的关键内容。创建了一个ServerSocket对象server并指定端口4000,然后建立Socket对象client,这个对象不能用构造方法创建,是由server的accept方法创建的。创建过程是这样的:服务器程序运行后,将处于阻塞状态,一直等到一个客户机连接到这个端口,服务器端的client就和这个客户机联系起来了,也就是说双向通道此时才建成。 client的getInputStream和getOutputStream方法可以创建输入流和输出流,我们将输入流in和输出流out分别与它们对接。 构造方法的最后部分是一个条件恒为真的while循环,其中包含一个try...catch块,其作用是重复接收客户机发来的信息,将接收的字节流转换成字符串显示出来。 在键盘动作事件处理方法中,主要是把用户在文本框输入的内容发送给客户机。文本框的内容先转换成字节数组,然后将这个字节数组写入输出流,发送给客户机。最后将已发送的内容显示在文本区中。 17 例17客户机端程序,和服务器聊天 import java.io.*; import .*; import java.awt.*; import java.awt.event.*; public class Client extends Frame implements ActionListener { Label label=new Label(″交谈″); panel panel=new Panel( ); TextField tf=new TextField(10); TextArea ta=new TextArea( ); Socket client; InputStream in; OutputStream out; public Client( ) { super(″客户机″); setSize(250,250); panel.add(label); panel.add(tf); tf.addActionListener(this); add(″North″,panel); add(″Center″,ta); addWindowListener(new WindowAdapter( ) { public void windowClosing(WindowEvent e) { System.exit(0); } } ); show( ); try { client=new Socket(InetAddress.getLocalHost( ),4000); ta.append(″已连接到服务器:″+client.getInetAddress( ).getHostName( )+″\n\n″); in=client.getInputStream( ); out=client.getOutputStream( ); } catch (IOException ioe) {} while(true) { try { byte[] buf=new byte[256]; in.read(buf); String str=new String(buf); ta.append(″服务器说:″+str); ta.append(″\n″); } catch (IOException e) {} } } public void actionPerformed(ActionEvent e) { try { String str=tf.getText( ); byte[] buf=str.getBytes( ); tf.setText(null); out.write(buf); ta.append(″我说:″+str); ta.append(″\n″); } catch (IOException ioe) {} } public static void main(String[] args) { new Client( ); } } 客户机程序和服务器程序在窗口方面
有哪些信誉好的足球投注网站
文档评论(0)