------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
TCP
练习代码2:建立一个文本转换服务端,客户给服务端发送文本,服务端将数据转换成大写后返回给客户端,当客户端输入over时,转换结束
//客户端:
class TCPClient{
public static void main(String[] args){
Socket s = new Socket("127.0.0.1",10000);
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
BufferedReader bufIn = new BufferedReader(new InputStreamReader(
s.getInputStream()));
String line = null;
while((line = bufr.readLine())!=null){
if("over".equals(line))
break;
bufOut.write(line);
bufOut.newLine();
bufOut.flush();
String retVal = bufIn.readLine();
sop("server:"+retVal);
}
bufr.close();
s.close();
}
}
//服务端:
class TCPServer{
public static void main(String[] args){
ServerSocket ss = new ServerSocket(10000);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
sop(ip);
BufferedReader bufIn = new BufferedReader(new InputStreamReader(
s.getInputStream()));
BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
while((line = bufIn.readLine())!=null){
bufOut.write(line.toUpperCase());
bufOut.newLine();
bufOut.flush();
}
s.close();
ss.close();
}
}
练习代码3:拷贝文件
//客户端:
class TCPClient{
public static void main(String[] args){
Socket s = new Socket("127.0.0.1",10000);
BufferedReader bufr = new BufferedReader(new FileReader("d:\\demo.txt"));
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line = bufr.readLine())!=null){
pw.println();
}
s.shutDownOutput();
BufferedReader bufIn = new BufferedReader(new InputStreamReader(
s.getInputStream()));
String retVal = bufIn.readLine();
sop(retVal);
bufr.close();
s.close();
}
}
//服务端:
class TCPServer{
public static void main(String[] args){
ServerSocket ss = new ServerSocket(10000);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
sop(ip);
BufferedReader bufIn = new BufferedReader(new InputStreamReader(
s.getInputStream()));
PrintWriter out = new PrintWriter(new FileWriter"copy.txt",true);
String line =null;
while((line = bufIn.readLine())!=null){
out.write(line);
}
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("上传成功");
out.close();
s.close();
ss.close();
}
}
练习代码4:上传图片
//客户端:
class TCPClient{
public static void main(String[] args){
Socket s = new Socket("127.0.0.1",10000);
FileInputStream fis = new FileInputStream("d:\\图片1.png");
OutputStream out = s.getOutputStream();
byte[] buf = new byte[1024];
int len = 0;
while((len = bufr.read())!=-1){
out.write(buf,0,len);
}
s.shutDownOutput();
InputStream in = s.getInputStream();
byte[] bufIn = new byte[1024];
int lenIn = in.read(bufIn);
sop(new String(bufIn,0,lenIn);
fis.close();
s.close();
}
}
//服务端:
class TCPServer{
public static void main(String[] args){
ServerSocket ss = new ServerSocket(10000);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
sop(ip);
FileOutputStream fos = new FileOutputStream("d:\\copy.png");
InputStream in = s.getInputStream();
byte[] bufIn = new byte[1024];
int lenIn = 0;
while((lenIn=bufIn.read())!=-1){
fos.write(bufIn,0,lenIn)
}
OutputStream outIn = s.getOutputStream();
outIn.write("上传成功".getBytes());
fos.close();
s.close();
ss.close();
}
}
练习代码5:客户端并发登陆
客户端通过键盘录入用户名,服务端对这个用户名进行校验
如果用户存在,在服务端现实xxx已登录,并在客户端现实欢迎xxx
如果用户不存在,在服务端现实xxx正在尝试登陆,并在客户端现实xxx用户不存在
最多登陆三次。
//校验端:
class User implements Runnable{
private Socket s;
public User(){}
public User(Socket s){
this.s=s;
}
public void run(){
try{
BufferedReader bufrIn = new BufferedReader(
new InputStream(s.getInputStream()))
String name = bufrIn.readLine();
if(name==null){
sop("用户名为空");
break;
}
BufferedReader bufr = new BufferedReader(
new FileReader("user.txt"));
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
String line = null;
boolean flag = false;
while((line = bufr.reanLine())!=null){
if(line.equals(name)){
flag = true;
break;
}
if(flag){
sop(name+"已登陆");
pw.println("欢迎"+name);
break;
}
else{
sop(name+"正尝试登陆");
pw.println(name+"用户不存在");
}
}
s.close();
}
catch(Exception e){
throw new RuntimeException("用户校验失败");
}
}
}
//客户端:
class LoginClient{
public static void main(String[] args){
Socket s = new Socket("127.0.0.1",10000);
BufferedReader bufr = new BufferedReader(
new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn = new BufferedReader(
new InputStreamReader(s.getInputStream()));
for(int i=0;i<3;i++){
String line = bufr.readLine();
if(line == null){
sop("用户名不能为空!");
break;
}
out.write(line);
String retVal = bufIn.readLine();
sop(retVal);
}
bufr.close();
s.close();
}
}
//服务端:
class LoginServer{
public static void main(String[] args){
ServerSocket ss = new ServerSocket(10000);
while(true){
Socket s = ss.accept();
new Thread(new User()).start();
}
}
}