package server;/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.net.Socket;/**
*
* @author HJ
*/
public class ServerThread extends Thread {
private Socket socket; public ServerThread(Socket socket)
{
this.socket = socket;
}
public void run(){ try { DataInputStream inputStream = null;
try {
inputStream = new DataInputStream(new BufferedInputStream(
socket.getInputStream()));
} catch (Exception e) {
System.out.print("接收消息缓存错误\n");
return;
}
try {
String savePath = "E:\\" ;
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
long len = 0;
savePath += inputStream.readUTF();
DataOutputStream fileOut = new DataOutputStream(
new BufferedOutputStream(new BufferedOutputStream(
new FileOutputStream(savePath))));
len = inputStream.readLong();
System.out.println("文件的长度为:" + len + "\n");
System.out.println("开始接收文件!" + "\n");
while (true) {
int read = 0;
if (inputStream != null) {
read = inputStream.read(buf);
}
if (read == -1) {
break;
}
//System.out.println(buf.toString());
fileOut.write(buf, 0, read);
}
System.out.println("接收完成,文件存为" + savePath + "\n");
fileOut.flush();
fileOut.close();
inputStream.close();
} catch (Exception e) {
System.out.println("接收消息错误" + "\n");
return;
}
} catch (Exception e) {
e.printStackTrace();
} }}package server;import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;public class SocketServer {
protected int listenPort = 3000;
private ServerSocket ss;
private Socket socket ;
public static void main(String[] args) {
SocketServer server = new SocketServer();
server.acceptConnections();
} /**
* 建立链接
*
*/
public void acceptConnections() {
try {
ss = new ServerSocket(listenPort);
while (true) {
socket = ss.accept();
// handleConnection(socket);
new ServerThread(socket).start();
}
} catch (BindException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}这是java端服务器。C++ 客户端做了很久都不行啊,高手给下源代码我研究下。或给点提示
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.net.Socket;/**
*
* @author HJ
*/
public class ServerThread extends Thread {
private Socket socket; public ServerThread(Socket socket)
{
this.socket = socket;
}
public void run(){ try { DataInputStream inputStream = null;
try {
inputStream = new DataInputStream(new BufferedInputStream(
socket.getInputStream()));
} catch (Exception e) {
System.out.print("接收消息缓存错误\n");
return;
}
try {
String savePath = "E:\\" ;
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
long len = 0;
savePath += inputStream.readUTF();
DataOutputStream fileOut = new DataOutputStream(
new BufferedOutputStream(new BufferedOutputStream(
new FileOutputStream(savePath))));
len = inputStream.readLong();
System.out.println("文件的长度为:" + len + "\n");
System.out.println("开始接收文件!" + "\n");
while (true) {
int read = 0;
if (inputStream != null) {
read = inputStream.read(buf);
}
if (read == -1) {
break;
}
//System.out.println(buf.toString());
fileOut.write(buf, 0, read);
}
System.out.println("接收完成,文件存为" + savePath + "\n");
fileOut.flush();
fileOut.close();
inputStream.close();
} catch (Exception e) {
System.out.println("接收消息错误" + "\n");
return;
}
} catch (Exception e) {
e.printStackTrace();
} }}package server;import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;public class SocketServer {
protected int listenPort = 3000;
private ServerSocket ss;
private Socket socket ;
public static void main(String[] args) {
SocketServer server = new SocketServer();
server.acceptConnections();
} /**
* 建立链接
*
*/
public void acceptConnections() {
try {
ss = new ServerSocket(listenPort);
while (true) {
socket = ss.accept();
// handleConnection(socket);
new ServerThread(socket).start();
}
} catch (BindException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}这是java端服务器。C++ 客户端做了很久都不行啊,高手给下源代码我研究下。或给点提示
但是要求java端不能更改。现在写C++ 客户端