使用socket模拟服务端与客户端传输文件

package netFile;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;

public class SocketTask {
	//客户端发送文件
	public static void main(String[] args) {
		Socket socket = null;
		BufferedInputStream bis = null;
		BufferedOutputStream bos= null;
		try {
			socket = new Socket("127.0.0.1", 10086);
			bis = new BufferedInputStream(new FileInputStream("f:"+File.separator+"2.jpg"));
			bos = new BufferedOutputStream(socket.getOutputStream());

			byte [] buffer = new byte[1024];
			int len = 0;
			while((len = bis.read(buffer)) != -1){
				bos.write(buffer, 0, len);
				bos.flush();
			}
			socket.shutdownOutput();
		System.out.println("客户端发送完成 !");

		BufferedInputStream is = new BufferedInputStream(socket.getInputStream());
			is.read();

		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			close(bis);
			close(bos);
		}
	}

private static void close(Closeable close){
	if(close != null){
	try {
		close.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
	}
}
}

  

package netFile;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class SeverSocketTask {
	//服务端,接收文件
	public static void main(String[] args) {

	ServerSocket sc = null;
	BufferedInputStream bis = null;
	BufferedOutputStream bos = null;
	try {
		sc = new ServerSocket(10086);
		Socket socket = sc.accept();
		bis = new BufferedInputStream(socket.getInputStream());
		bos = new BufferedOutputStream(new FileOutputStream("e:"+File.separator+"aa.jpg"));

		byte [] buffer = new byte[1024];
		int len = 0;
		while((len = bis.read(buffer)) != -1){
			bos.write(buffer, 0, len);
			bos.flush();
		}

		BufferedWriter writer = new
				BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
		writer.write("服务端已收到消息!");
		writer.flush();
		socket.shutdownOutput();
	} catch (IOException e) {
		e.printStackTrace();
	}finally{
		close(bos);
	}
}
private static void close(Closeable close) {
	if(close != null){
	try {
		close.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
	}
}
}

  

时间: 2024-10-08 12:42:39

使用socket模拟服务端与客户端传输文件的相关文章

java中socket创建服务端与客户端即时对聊

package tool; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; impo

11.网络编程:socket、服务端、客户端

socket: socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. python中使用socket来进行网络连接传输 由图可知: socket中客户端需要进行的操作是:建立,连接,传输数据 ,接收数据,关闭连接 服务端需要进行的操作是:建立,绑定IP地址和端口,等待连接,接收数据,传输数据 ,关闭连接 服务端: 建立:socket.socket() 绑定端口:bind(('IP地址',端口)),其中地址和端口号是一个 tuple

socket创建服务端和客户端

看情况选择相对应的套接字*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM) 在liunx中  telnet ip port 可以当成临时客服端 服务端示例: 创建服务端示例: from socket import * #创建套接字(参数:地址族类型,套接字类型,选定子协议类型) sockfd = socket(AF_INET,SOCK_STREAM,proto = 0) #绑定地址(

Cocos2dx3.x使用socket创建服务端和客户端改进

由于一个网友使用笔者写的SocketClient作为游戏客户端网络数据接收类,出现了一些问题 这个问题就是因为当执行onRecv时创建了一个Sprite(Sprite::create("1.png")),而创建完成后sprite的数据混乱,或者MoveTo时返回的也是混乱数据.原因在于在多线程申请内存,在主线程使用就会出现问题.为了解决这个问题,特意看了cocos2dx的WebSocket的实现方式,发现当接收到数据时并不是立即调用回调函数,而是将数据信息加入到消息队列,当主线程更新时

Socket通信服务端和客户端总结

服务端:1.创建一个Socket对象.用来侦听的.2.绑定端口和IP3.开启侦听4.开始接受客户端连接5.创建一个代理通信Socket对象.用来通信的.6.发送消息接收消息7.收到客户端的道别,也会回一个:我也走了8.关闭Socket 客户端:1.创建Socket对象2.连接服务器3.发送消息接受消息4.停止连接服务器和客户端都可以.发消息:我要走了.5.关闭Socket

java 界面编程用socket实现服务端与客户端的循环通信。

服务端: package 实验五聊天; import java.awt.BorderLayout; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.ne

python模拟服务端和客户端通信(简单)

写了一个超级简单的,小白可以看一下,因为自己就是小白白(自学的) 客户端: import socket#指定一个协议tcp/ipclient=socket.socket()#连接一个地址(服务端和端口号)client.connect(('localhost',6969))#发送数据(python默认是byte类型,所以数据前面加b)client.send(b"Hello Word")#把服务端反馈的信息进行接收并赋值,给出一个接收的大小(kb/M)之类的date=client.recv

【转】SoapUI5.0创建WebService接口模拟服务端

原文:http://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 MathUtil.wsdl: [plain] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://sean.co

【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发

目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 [阐述]:首先应该遇到了一个共同的问题,JMeter3.2之后就没有WebService(SOAP) Request,后来经过查询网上资料得知其实可以用HTTP请求来操作,结果是一样的. 具体资料大家可以参照原文<Jmeter测试SOAP协议(Jmeter 3.3)>感谢作者:stone9159 [步骤]: 一.创建WebService接口模拟