网络编程及多线程
目录
实验代码:
package myFourthJavaPractice;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Client {
public static void main(String[] args) throws Exception{
List<String> newsList1 = new ArrayList<String>();
List<String> newsList2 = new ArrayList<String>();
//连接
Socket socket = new Socket("wanghongyu.cn",30000);
socket.setSoTimeout(5000);
PrintStream s = new PrintStream(socket.getOutputStream());
s.println("1613030102,030102");
//输入流,接收信息
InputStream is=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is,"UTF-8");
BufferedReader br=new BufferedReader(isr);
String info=br.readLine();
System.out.println(info);//练习一向服务器发送你的“学号,身份证后六位”,如果服务器成功接收,将会回传“登陆成功
s.println("news-num");
int L1 = new Integer(br.readLine());
System.out.println(L1);//练习二向服务器发送“module-num”,返回新闻列表条数
s.println("news-list");
for(int i=0;i<L1;i++)
{
info=br.readLine();
System.out.println(info);
newsList1.add(info);
}
String[] news1=new String[L1];
String[] news2=new String[L1];
for(int i=0;i<L1;i++)
{
String[] x = newsList1.get(i).split(",");
news1[i]=x[0];
news2[i]=x[1];
}//练习三向服务器发送“module-list”,返回新闻列表
s.println("follow-num");
int L2 = new Integer(br.readLine());
System.out.println(L2);//练习四向服务器发送“user-num”,返回用户关注列表条数
s.println("follow-list");
info=null;
for(int i=0;i<L2;i++)
{
info=br.readLine();
System.out.println(info);
newsList2.add(info);
}
String[] news3=new String[L2];
String[] news4=new String[L2];
for(int i=0;i<L2;i++)
{
String[] x = newsList2.get(i).split(",");
news3[i]=x[0];
news4[i]=x[1];
}//练习五向服务器发送“user-list”,返回用户关注列表
s.println("add");
info=br.readLine();
System.out.println(info);//练习六向服务器发送“add”,返回“请发送你的结果”
String result="";
result+=news3[0];
for(int j=0;j<L1;j++){
if(news4[0].compareTo(news1[j])==0){
String ss="["+news4[0]+"]";
result+=ss;
result+=news2[j];
}
}
for(int i=1;i<L2;i++){
if(news3[i].compareTo(news3[i-1])!=0){
result+=news3[i];
}
for(int j=0;j<L1;j++){
if(news4[i].compareTo(news1[j])==0){
String ss="["+news4[i]+"]";
result+=ss;
result+=news2[j];
}
}
}
System.out.println(result);
s.println(result);
info=br.readLine();
System.out.println(info);//练习七向服务器发送你的最终结果
s.close();
socket.close();
}
}
实验结果:
总结:
通过这次实验实现了TCP-socket编程,访问服务器连接成功,成功发生请求并收到服务器的响应返回的数据。
补充:
扫描二维码关注公众号,回复:
2597511 查看本文章