---------------------- android培训、java培训、期待与您交流! ----------------
------关于网络编程,以前还没有涉及过,感觉很难,看完视频,自己就做了一个客户端和服务器进行简单通话的程序!!!用socket编程真的很麻烦,每一个细节都要照顾到,要是开发是这样搞的,可是要死人的
代码敲完后,感觉还不很踏实,有时间要再看一遍视频!!!
下面是服务器端的代码
public class SSocket extends Thread {
Socket sk=null;
public SSocket(Socket socket){
this.sk=socket;
}
public void run(){
//在这里实现数据的接受和发送
BufferedReader input;
PrintWriter output;
try {
input=new BufferedReader(new InputStreamReader(sk.getInputStream()));
output=new PrintWriter(sk.getOutputStream());
String msg=input.readLine();
System.out.println("服务器接受客户端数据为:"+msg);
Pattern pattern=Pattern.compile("[0-9]*");
Matcher isNum=pattern.matcher(msg.trim());
if(isNum.matches()){
output.println("已经接受数据完成.您输入的内容是一个数字。数字是:"+msg);
output.flush();
}else{
output.println("已经接受数据完成.您输入的内容是不一个数字。输入内容是:"+msg);
output.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
sk.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
客户端代码为
public class SocketTest {
public static void main(String[] args) {
Socket sk=null;
try {
Scanner input = new Scanner(System.in);
System.out.println("请输入内容,输入f表示输入结束:");
String name=input.next();
while(!name.equals("f")){
sk=new Socket("prd03",8088);
OutputStream out=sk.getOutputStream();
PrintWriter os=new PrintWriter(out);
BufferedReader is=new BufferedReader(new InputStreamReader(sk.getInputStream()));
//向服务器传入数据
os.println(name);
os.flush();
//服务器返回数据
String res=is.readLine();
System.out.println(res);
name=input.next();
//释放资源
os.close();
is.close();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(sk!=null)
try {
sk.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}