Java_Socket网络编程大全.doc_第1页
Java_Socket网络编程大全.doc_第2页
Java_Socket网络编程大全.doc_第3页
Java_Socket网络编程大全.doc_第4页
Java_Socket网络编程大全.doc_第5页
免费预览已结束,剩余65页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.简单服务器端/*import .*;import java.io.*;*/ServerSocket server=null;try server=new ServerSocket(%1);catch(Exception e)System.out.println(不能监听:+e.toString();Socket socket=null;try socket=server.accept();BufferedReader %3=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriter %4=new PrintWriter(socket.getOutputStream();String %2=%3.readLine();%4.println();%4.flush();%4.close();%3.close();catch(IOException e)System.out.println(出错:+e.toString();finallytry if(socket!=null)socket.close();server.close();catch(IOException e)e.printStackTrace();2.简单客户端/*import .*;import java.io.*;*/Socket socket=null;try socket=new Socket(%1,%2);PrintWriter %3=new PrintWriter(socket.getOutputStream();BufferedReader %4 = new BufferedReader(new InputStreamReader(socket.getInputStream();%3.println();%3.flush();String %5=%4.readLine();%6%3.close();%4.close();catch(Exception e)e.printStackTrace();finallytry socket.close();catch(IOException e)e.printStackTrace();3.获得本机IP/import .*;String strIP = null;try strIP =InetAddress.getLocalHost().getHostAddress().toString(); catch(UnknownHostException e)e.printStackTrace();/*%1=InetAddress.getLocalHost().getHostAddress();Enumeration netInterfaces = null; try netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements() NetworkInterface ni = netInterfaces.nextElement(); System.out.println(DisplayName: + ni.getDisplayName(); System.out.println(Name: + ni.getName(); Enumeration ips = ni.getInetAddresses(); while (ips.hasMoreElements() System.out.println(IP: + ips.nextElement().getHostAddress(); catch (Exception e) e.printStackTrace(); */4.端对端通信/import .*;byte buf=new byte1024;DatagramSocket ds=new DatagramSocket(%1);DatagramPacket ip=new DatagramPacket(buf,buf.length);while(true)ds.receive(ip);InetAddress target=InetAddress.getByName(%2);DatagramSocket ds=new DatagramSocket(%3);String str=%4;byte buf=str.getBytes();DatagramPacket op=new DatagramPacket(buf,buf.length,target,%5);ds.send(op);ds.close();5.点对点通信/*import java.io.*;import .*;*/public class %6 extends Thread Overridepublic void run() ServerSocket server = null;try server = new ServerSocket(5000); catch (Exception e) System.out.println(不能监听: + e.toString();Socket socket = null;try socket = server.accept();BufferedReader req = new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriter os = new PrintWriter(socket.getOutputStream();Debug.p(req.readLine();os.println(Server);os.flush();os.close();req.close(); catch (IOException e) System.out.println(出错: + e.toString(); finally try if (socket != null) socket.close();server.close(); catch (IOException e) e.printStackTrace();Thread t = new %6();t.start();String strIP = null;try strIP = InetAddress.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e) e.printStackTrace();Socket socket = null;try socket = new Socket(strIP, 4000);PrintWriter pw = new PrintWriter(socket.getOutputStream();BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream();pw.println(Client);pw.flush();Debug.p(br.readLine();pw.close();br.close(); catch (Exception e) e.printStackTrace(); finally try socket.close(); catch (IOException e) e.printStackTrace();6.UDP对时服务器端/*import java.io.*;import .*;import java.util.*;*/public class UDPServer extends Thread Overridepublic void run() String strIP = null;try strIP = InetAddress.getLocalHost().toString(); catch (UnknownHostException e) e.printStackTrace();DatagramSocket ds;try ds = new DatagramSocket(5000);byte buf = new byte1024;DatagramPacket dpt = new DatagramPacket(buf, buf.length);ds.receive(dpt);String Read_str = new String(buf, 0, dpt.getLength();if (Read_str.equals(TimeNow) Date t = new Date();byte sendData = String.valueOf(cmd date +(t.getYear()+1900)+-+(t.getMonth()+1)+-+t.getDate()+ & time +t.getHours()+:+t.getMinutes()+:+t.getSeconds().getBytes();DatagramPacket dp = new DatagramPacket(sendData,sendData.length, InetAddress.getLocalHost(), 2000);ds.send(dp);ds.close(); catch (SocketException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();Thread t = new UDPServer();t.start();7.UDP对时客户端/*import java.io.*;import .*;*/String strIP = null;try strIP = InetAddress.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e) e.printStackTrace();byte buf = new byte1024;DatagramSocket ds;try ds = new DatagramSocket(2000);DatagramPacket ip = new DatagramPacket(buf, buf.length);InetAddress target = InetAddress.getByName(strIP);String sendData = TimeNow;byte buffer = sendData.getBytes();DatagramPacket op = new DatagramPacket(buffer, buffer.length,target, 5000);ds.send(op);ds.receive(ip);/* 当前时间: 15:38:51.12 输入新时间: 当前日期: 2009-05-26 星期二 输入新日期: (年月日)*/try Runtime.getRuntime().exec(new String(buf, 0, ip.getLength(); catch (IOException e) e.printStackTrace();ds.close(); catch (SocketException e) e.printStackTrace(); catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();8.点对点传输文件/*import java.io.*;import .*;import java.util.*;*/private HttpURLConnection connection;/存储连接 private int downsize = -1;/下载文件大小,初始值为-1 private int downed = 0;/文加已下载大小,初始值为0 private RandomAccessFile savefile;/记录下载信息存储文件 private URL fileurl;/记录要下载文件的地址 private DataInputStream fileStream;/记录下载的数据流try /*开始创建下载的存储文件,并初始化值*/ File tempfileobject = new File(h:webwork-2.1.7.zip); if(!tempfileobject.exists() /*文件不存在则建立*/ tempfileobject.createNewFile(); savefile = new RandomAccessFile(tempfileobject,rw); /*建立连接*/ fileurl = new URL(/files/documents/693/9723/webwork-2.1.7.zip); connection = (HttpURLConnection)fileurl.openConnection(); connection.setRequestProperty(Range,byte=+this.downed+-); this.downsize = connection.getContentLength(); /System.out.println(connection.getContentLength(); new Thread(this).start(); catch(Exception e) System.out.println(e.toString(); System.out.println(构建器错误); System.exit(0); public void run() /*开始下载文件,以下测试非断点续传,下载的文件存在问题*/ try System.out.println(begin!); Date begintime = new Date(); begintime.setTime(new Date().getTime(); byte filebyte; int onecelen; /System.out.println(this.connection.getInputStream().getClass().getName(); this.fileStream = new DataInputStream( new BufferedInputStream( this.connection.getInputStream(); System.out.println(size = + this.downsize); while(this.downsize != this.downed) if(this.downsize - this.downed 262144)/设置为最大256KB的缓存 filebyte = new byte262144; onecelen = 262144; else filebyte = new bytethis.downsize - this.downed; onecelen = this.downsize - this.downed; onecelen = this.fileStream.read(filebyte,0,onecelen); this.savefile.write(filebyte,0,onecelen); this.downed += onecelen; System.out.println(this.downed); this.savefile.close(); System.out.println(end!); System.out.println(begintime.getTime(); System.out.println(new Date().getTime(); System.out.println(begintime.getTime() - new Date().getTime(); catch(Exception e) System.out.println(e.toString(); System.out.println(run()方法有问题!); /*/FileClient.javaimport java.io.*;import .*;public class FileClient public static void main(String args) throws Exception /使用本地文件系统接受网络数据并存为新文件File file = new File(d:fmd.doc);file.createNewFile();RandomAccessFile raf = new RandomAccessFile(file, rw);/ 通过Socket连接文件服务器Socket server = new Socket(InetAddress.getLocalHost(), 3318);/创建网络接受流接受服务器文件数据InputStream netIn = server.getInputStream();InputStream in = new DataInputStream(new BufferedInputStream(netIn);/创建缓冲区缓冲网络数据byte buf = new byte2048;int num = in.read(buf);while (num != (-1) /是否读完所有数据raf.write(buf, 0, num);/将数据写往文件raf.skipBytes(num);/顺序写文件字节num = in.read(buf);/继续从网络中读取文件in.close();raf.close();/FileServer.javaimport java.io.*;import java.util.*;import .*;public class FileServer public static void main(String args) throws Exception /创建文件流用来读取文件中的数据File file = new File(d:系统特点.doc);FileInputStream fos = new FileInputStream(file);/创建网络服务器接受客户请求ServerSocket ss = new ServerSocket(8801);Socket client = ss.accept();/创建网络输出流并提供数据包装器OutputStream netOut = client.getOutputStream();OutputStream doc = new DataOutputStream(new BufferedOutputStream(netOut);/创建文件读取缓冲区byte buf = new byte2048;int num = fos.read(buf);while (num != (-1) /是否读完文件doc.write(buf, 0, num);/把文件数据写出网络缓冲区doc.flush();/刷新缓冲区把数据写往客户端num = fos.read(buf);/继续从文件中读取数据fos.close();doc.close();*/9.发送邮件/*import java.applet.*;import java.awt.*;import java.io.*;import .*;*/public class WebSendMail extends Applet / 初始化界面 public void init() String s = getParameter(BgColor); if(s = null) s = 0,0,0; bgcolor = param.decodeColor(s); String s1 = getParameter(FgColor); if(s1 = null) s1 = 255,255,255; fgcolor = param.decodeColor(s1); in_mailto = getParameter(MailTo); if(in_mailto = null) in_mailto = ; in_website = getParameter(Website); if(in_website = null) in_website = ; d = size(); SuperCedeInit(); public void sendMsg() / 处理消息发送 try button_Send.disable(); button_Clear.disable(); host = getCodeBase().getHost(); if(host.length() = 0) host = localhost; textArea_Log.appendText(Connecting. + host + n); Socket socket = new Socket(host, 25); textArea_Log.appendText(Connect OK + host + n); / 创建输入输出流 DataOutputStream dataoutputstream = new DataOutputStream(socket.getOutputStream(); DataInputStream datainputstream = new DataInputStream(socket.getInputStream(); textArea_Log.appendText(Send Start + textField_Subject.getText() + n); textArea_Log.appendText(datainputstream.readLine() + n); dataoutputstream.writeBytes(HELO + host + n); textArea_Log.appendText(datainputstream.readLine() + n); dataoutputstream.writeBytes(MAIL FROM: + textField_From.getText() + n); textArea_Log.appendText(datainputstream.readLine() + n); dataoutputstream.writeBytes(RCPT TO: + textField_To.getText() + n); textArea_Log.appendText(datainputstream.readLine() + n); dataoutputstream.writeBytes(DATAn); textArea_Log.appendText(datainputstream.readLine() + n); dataoutputstream.writeBytes(X-Mailer: WebSendMailn); dataoutputstream.writeBytes(X-WebSite: + in_website + n); dataoutputstream.writeBytes(Subject: + textField_Subject.getText() + n + textArea_Msg.getText() + n); dataoutputstream.writeBytes(.nQUITn); textArea_Log.appendText(datainputstream.readLine() + n-n); socket.close(); button_Send.enable(); button_Clear.enable(); button_Send.enable(); button_Clear.enable(); return; catch(UnknownHostException _ex) / 处理连接异常 textArea_Log.appendText(Connect Error + host + n); return; catch(IOException _ex) button_Send.enable(); button_Clear.enable(); textArea_Log.appendText(Send Error + textField_Subject.getText() + n); public void paint(Graphics g) protected void Button_SendClicked(Event event) / 处理发送按钮点击事件 if(textField_From.getText().length() = 0) / 如果信件来源为空 textArea_Log.appendText(Input? Fromn); return; if(textField_To.getText().length() = 0) / 如果信件目的地为空 textArea_Log.appendText(Input? Ton); return; if(textField_Subject.getText().length() = 0) / 如果信件主题为空 textArea_Log.appendText(Input? Subjectn); return; if(textArea_Msg.getText().length() = 0) / 如果信件内容为空 textArea_Log.appendText(Input? Messagen); return; else sendMsg(); return; protected void Button_ClearClicked(Event event) / 清除按钮点击处理,清空所有已填内容 textField_Subject.setText(); textField_From.setText(); textField_To.setText(in_mailto); textArea_Msg.setText(); protected void Button_ClearLogClicked(Event event) / 清空日志 textArea_Log.setText(); / 调用或重载超类相关方法实现初始化、开始、结束以及事件处理等 public boolean handleEvent(Event event) return SuperCedeEvent(event); public void start() SuperCedeStart(); public void stop() SuperCedeStop(); public String getAppletInfo() return WebSendMail; private final void SuperCedeInit() / 详细的界面设置 setLayout(null); setForeground(fgcolor); setBackground(bgcolor); addNotify(); resize(d.width, d.height); label4 = new Label(From :, 2); label4.setForeground(fgcolor); add(label4); int i = insets().left; label4.reshape(i, insets().top, 50, 22); textField_From = new TextField(); textField_From.setEditable(true); textField_From.setForeground(new Color(0, 0, 0); textField_From.setBackground(new Color(255, 255, 255); add(textField_From); int j = insets().left + 50; textField_From.reshape(j, insets().top, d.width - 50, 22); label3 = new Label(To :, 2); label3.setForeground(fgcolor); add(label3); int k = insets().left; label3.reshape(k, insets().top + 22, 50, 22); textField_To = new TextField(in_mailto); textField_To.setEditable(true); textField_To.setForeground(new Color(0, 0, 0); textField_To.setBackground(new Color(255, 255, 255); add(textField_To); int l = insets().left + 50; textField_To.reshape(l, insets().top + 22, d.width - 50, 22); label_Subject = new Label(Subject :, 2); label_Subject.setForeground(fgcolor); add(label_Subject); label_Subject.reshape(0, insets().top + 44, 50, 22); textField_Subject = new TextField(); textField_Subject.setEditable(true); textField_Subject.setForeground(new Color(0, 0, 0); textField_Subject.setBackground(new Color(255, 255, 255); add(textField_Subject); int i1 = insets().left + 50; textField_Subject.reshape(i1, insets().top + 44, d.width - 50, 22); textArea_Msg = new TextArea(); textArea_Msg.setEditable(true); textArea_Msg.setForeground(new Color(0, 0, 0); textArea_Msg.setBackground(new Color(255, 255, 255); add(textArea_Msg); textArea_Msg.reshape(0, insets().top + 66, d.width, d.height - 170); textArea_Log = new TextArea(); textArea_Log.setEditable(true); textArea_Log.setForeground(new Color(0, 0, 0); textArea_Log.setBackground(new Color(192, 192, 192); add(textArea_Log); textArea_Log.reshape(0, d.height - 105, d.width, 80); button_Send = new Button(Send); button_Send.setForeground(new Color(128, 0, 0); button_Send.setBackground(new Color(192, 192, 192); add(button_Send); button_Send.reshape(d.width / 2 - 105, d.height - 25, 70, 25); button_Clear = new Button(Clear); button_Clear.setForeground(new Color(0, 128, 0); button_Clear.setBackground(new Color(192, 192, 192); add(button_Clear); button_Clear.reshape(d.width / 2 - 35, d.height - 25, 70, 25); button_ClearLog = new Button(Clear Log); button_ClearLog.setForeground(new Color(0, 0, 128); button_ClearLog.setBackground(new Color(192, 192, 192); add(button_ClearLog); button_ClearLog.reshape(d.width / 2 + 35, d.height - 25, 70, 25); super.init(); private final boolean SuperCedeEvent(Event event) if(event.target = button_Send & event.id = 1001) Button_SendClicked(event); return true; if(event.target = button_Clear & event.id = 1001) Button_ClearClicked(event); return true; if(event.target != button_ClearLog | event.id != 1001) return super.handleEvent(event); else Button_ClearLogClicked(event); return true; private final void SuperCedeStart() private final void SuperCedeStop() public WebSendMail() / 发送邮件 param = new CommonApplet(); in_mailto = null; / 成员变量 Color fgcolor; Color bgcolor; String host; Dimension d; C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论