java 网络编程step by step.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:145KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

java 网络编程step by step.doc

java网络编程stepbystep.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java网络编程stepbystep2011-7-23起步:做个简单的tcp协议的网络编程:即一对一的信息发送先来看一下tcp的socket的网络编程的一些步骤:(孙鑫老师课件的ppt)对于一个网络编程的程序通常是客户端和服务器端两个线程(无论是不是写在同一个类中),先写服务器端的程序:1创建ServerSocket的一个对象,一般绑定一个端口2调用accept(),监听连接请求,如没有连接则会发送堵塞,否则就会产生一个socket(连接服务器成功的socket)3对于一般的通信,服务器可以接收一些信息,而同时可以向客服端发送信息。这就要求我们可以将提取socket的信息和发送一些信息给socket。4关闭套接字(包括服务器套接字和accpet()返回的套接字)。对于客户端就没这么麻烦,因为客户端就是需要通过IP和端口(Port)连接到服务器后就相当于接通了电话,可以直接通信了。看看上面孙鑫老师的ppt就不在赘述了。开始编写一些简单的程序了吧,这里全部采用的是控制台编程(自己也可以根据自己的设计做一个简单的界面)代码:服务器端/……头文件我给删除了用eclipse工具可以很容易解决这个问题的publicclassserver{privateSocketsocket;privateServerSocketserverSocker;publicserver(){try{serverSocker=newServerSocket(9000);//System.out.println("服务器套接字创建成功");System.out.println("服务器等待接入");socket=serverSocker.accept();receive(socket);close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}privatevoidreceive(Sockets){try{Stringhost=s.getInetAddress().getHostName();//得到主机名DataInputStreamin=newDataInputStream(s.getInputStream());Stringinfo=in.readUTF();System.out.println(""+host+"说"+info);}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicstaticvoidmain(String[]args){newserver();}privatevoidclose(){//TODOAuto-generatedmethodstubtry{socket.close();serverSocker.close();}catch(IOExceptione){//TODOAuto-generatedcatchblockJOptionPane.showMessageDialog(null,"关闭出现异常");}}}在构造函数中创建服务器套接字和通过accept()来监听与服务器的请求套接字。在receive()函数中则是通过getInputStream()来获得输入流(即客户端的输出信息流)Close()函数来关闭套接字.这就相当于电话局的设置装好了,而我们要的是两者能够通信,那么久需要客户的程序,应为在服务器端的程序中accept()就一直在等待着客户端的请求,如没有请求就发生堵塞程序只运行到accept()就会停止的。客服端publicclassclient{privateSockets;publicclient(){try{s=newSocket("127.0.0.1",9000);send("hello");//发送hello给服务器端}catch(UnknownHostExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.p