Socket编程

来源:互联网 发布:开淘宝网店有赚钱的吗 编辑:程序博客网 时间:2024/06/05 20:31

最近看一篇关于Socket编程的文章感觉不错,进“引进”过来了。呵呵

客户端代码:

package com.sinovatech.zjusercenter.util;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.net.InetSocketAddress;import java.net.Socket;public class Text {// 客户端发送类public static String clientip = "127.0.0.1";public static int port = 33456;public static void main(String[] args) {int length = 0;byte[] sendBytes = null;Socket socket = null;DataOutputStream dos = null;FileInputStream fis = null;try {try {socket = new Socket();socket.connect(new InetSocketAddress(clientip, port),30 * 1000);dos = new DataOutputStream(socket.getOutputStream());File file = new File("F:\\reader.txt");// 找到文件fis = new FileInputStream(file);sendBytes = new byte[1024 * 4];while ((length = fis.read(sendBytes, 0, sendBytes.length)) > 0) {dos.write(sendBytes, 0, length); // 将文件的数据写进去。dos.flush();}} finally {if (dos != null)dos.close();if (fis != null)fis.close();if (socket != null)socket.close();}} catch (Exception e) {e.printStackTrace();}}}服务端代码:
package com.sinovatech.zjusercenter.util;import java.io.DataInputStream;import java.io.File;import java.io.FileOutputStream;import java.net.ServerSocket;import java.net.Socket;public class TestService implements Runnable { // 服务器监听类public static void main(String[] args) {try {final ServerSocket server = new ServerSocket(Text.port);Thread th = new Thread(new Runnable() {public void run() {while (true) {try {System.out.println("开始监听...");Socket socket = server.accept();System.out.println("有链接");receiveFile(socket);} catch (Exception e) {}}}});th.run(); // 启动线程运行} catch (Exception e) {e.printStackTrace();}}public void run() {}public static void receiveFile(Socket socket) {byte[] inputByte = null;int length = 0;DataInputStream dis = null;FileOutputStream fos = null;try {try {dis = new DataInputStream(socket.getInputStream());System.out.println(dis.readByte() + "{}{}");fos = new FileOutputStream(new File("E:\\readerService.txt")); // 创建一个文件存放客户端发送的数据inputByte = new byte[1024 * 4];System.out.println("开始接收数据...");while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {fos.write(inputByte, 0, length);fos.flush();}System.out.println("完成接收");} finally {if (fos != null)fos.close();if (dis != null)dis.close();if (socket != null)socket.close();}} catch (Exception e) {}}}