-------------------------------------------------android培训、java培训期待与您交流!----------------------------------
一、转大写
1)服务端
ServerSocket ss = new ServerSocket(10225);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(
s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
String str = "";
while (null != (str = br.readLine())) {
bw.write(str.toUpperCase(), 0, str.length());
bw.newLine();
bw.flush();
}
br.close();
bw.close();
ss.close();
2)客户端
Socket s = new Socket(InetAddress.getLocalHost(), 10225);
BufferedReader br = new BufferedReader(new InputStreamReader(
s.getInputStream()));
// BufferedWriter bw=new BufferedWriter(new
// OutputStreamWriter(s.getOutputStream()));
PrintWriter p = new PrintWriter(s.getOutputStream(), true);// true自动刷出
BufferedReader brI = new BufferedReader(
new InputStreamReader(System.in));
String str = "";
while (null != (str = brI.readLine())) {
if ("exit".equals(str))
break;
/*
* bw.write(str, 0, str.length()); bw.newLine();//写入换行,使服务端可以读取继续运行
* bw.flush();//将缓存数据刷出
*/p.println(str);// 使用PrintWriter一行搞定
System.out.println(br.readLine());
}
brI.close();
br.close();
// bw.close();
s.close();// 此Socket关闭方法,写入流-1,使读取的一方可以读到结束,不用等待
二、多用户上传图片
1.服务端
ServerSocket ss=new ServerSocket(10225);
while (true) {
Socket s=ss.accept();
//运行多个客户线程
new Thread(new PicThread(s)).start();
}
2.线程类
private Socket s;
public PicThread(Socket s) {
this.s = s;
}
public void run() {
int count = 1;
try {
InputStream is = s.getInputStream();
PrintWriter p = new PrintWriter(s.getOutputStream());
// 以用户Ip地址为名,用简单序号分别
File f = new File(s.getInetAddress().getHostAddress() + "(" + count+ ")" + ".jpg");
while (f.exists())
f = new File(s.getInetAddress().getHostAddress() + "("
+ (count++) + ")" + ".jpg");
FileOutputStream fos = new FileOutputStream(f);
byte[] b = new byte[1024];
int len = 0;
while (-1 != (len = is.read(b))) {
fos.write(b, 0, len);
}
p.println("上传成功!");
fos.close();
p.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
3.客户端
Socket s = new Socket(InetAddress.getLocalHost(), 10225);
BufferedReader bf = new BufferedReader(new InputStreamReader(
s.getInputStream()));
OutputStream os = s.getOutputStream();
System.out.println("请输入图片的路径——");
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
File f = new File(br.readLine());
// 上传文件判断
if (!(f.exists() && f.isFile())) {
System.out.println("文件不存在或者不是一个文件");
s.close();
return;
}
if (!f.getName().endsWith(".jpg")) {
System.out.println("请上传一张jpg格式的图片");
s.close();
return;
}
if (f.length() > 1024 * 1024 * 5) {
System.out.println("图片文件不能大于5M");
s.close();
return;
}
// 写出文件
FileInputStream fis = new FileInputStream(f);
byte[] b = new byte[1024];
int len = 0;
while (-1 != (len = fis.read(b))) {
os.write(b, 0, len);
}
// 告诉服务器那边这里读完了(停止写入数据),那边不用等着读了
s.shutdownOutput();
System.out.println(bf.readLine());
fis.close();
br.close();
bf.close();
os.close();
s.close();
-------------------------------------------------android培训、java培训期待与您交流!----------------------------------