java socket demo
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class Sender {
static int port = 2426;
public static void sendMsg(String ip, String msg) throws UnknownHostException, IOException {
Socket clt = new Socket(ip, port);
PrintWriter os = new PrintWriter(clt.getOutputStream());
BufferedReader is = new BufferedReader(new StringReader(msg));
while ((msg = is.readLine()) != null) {
os.println(msg);
}
os.close();
is.close();
clt.close();
}
public static void sendFile(String ip, String filePath) throws UnknownHostException, IOException {
Socket clt = new Socket(ip, port);
OutputStream os = clt.getOutputStream();
File file = new File(filePath);
FileInputStream is = new FileInputStream(file);
long fileLen = file.length();
long sentLen = 0l;
int per = 0;
String fileName = file.getName();
System.out.print("File : " + fileName + " is Uploading : ");
byte[] buff = new byte[1024];
int len = -1;
while ((len = is.read(buff)) != -1) {
sentLen += len;
per = (int) (sentLen / fileLen) * 100;
if (per > 10 && per % 10 == 0) {
System.out.print("+");
}
os.write(buff, 0, len);
}
os.close();
is.close();
clt.close();
}
public static void main(String[] args) throws UnknownHostException, IOException {
String ip = args[0];
String file = args[1];
sendFile(ip, file);
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
public class Receiver {
public static String savePath = "msg";
public static String getIps() throws SocketException {
List ip4s = new ArrayList();
Enumeration<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces();
while (nis.hasMoreElements()) {
NetworkInterface ni = nis.nextElement();
Enumeration<InetAddress> ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {
InetAddress ia = ias.nextElement();
String ip = ia.getHostAddress();
if (!"127.0.0.1".equals(ip) && ip.matches("^\\d+\\.\\d+\\.\\d+\\.\\d+$")) {
ip4s.add(ip);
}
}
}
String ips = "";
for (int i = 0; i < ip4s.size(); i++) {
ips += ip4s.get(i);
if (i != ip4s.size() - 1) {
ips += " , ";
}
}
return ips;
}
public static void fileReceiver() throws IOException, SocketException {
ServerSocket srv = new ServerSocket(2426);
String ip = getIps();
System.out.println("Server listenning " + ip + "[ " + 2426 + "]");
while (true) {
Socket so = srv.accept();
InputStream is = so.getInputStream();
File file = new File(savePath);
if (!file.exists()) {
file.mkdirs();
}
file = new File(file, new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
FileOutputStream fo = new FileOutputStream(file);
byte[] buff = new byte[1024];
int len = -1;
while ((len = is.read(buff)) != -1) {
fo.write(buff, 0, len);
}
fo.close();
is.close();
so.close();
}
}
public static void main(String[] args) throws IOException {
fileReceiver();
}
}