昨天晚上学了网络线程,并写了一个,客户端连接服务器的简单例子,有点QQ的感觉,但是实际上还差远,差不多就是很久之前那种“长江长江我是黄河”的通话形式。
代码如下:
服务器端代码:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class TestServer2 {
public static void main(String[] args) throws IOException {
ServerSocket ss=new ServerSocket(10000);
System.out.println("时间:"+new Date()+",服务器启动了,监听了10000端口");
while (true) {
Socket s = ss.accept();// 如果有客户端上来,则建立一个与客户机的连接。 阻塞式的方法
System.out.println("客户端是" + s.getRemoteSocketAddress()+"连接了服务器");// 得带远端的客户端端口
InputStream iis=s.getInputStream();
byte[] bs=new byte[1024];
int length=-1;
String str="";
while((length=iis.read(bs,0,bs.length))!=-1){
str+=new String(bs,0,length);
}
System.out.println("客户端说:"+str);
iis.close();
s.close();
}
}
}
客户端代码:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
public class TestClient2 {
public static void main(String[] args) throws UnknownHostException, IOException {
//客户端 的功能:1、链接服务器 2、发信息
Socket s=new Socket("192.168.1.114",10000);//写服务器端的地址和端口,端口号需要与服务器端代码监听的端口号一致才能建立连接。
System.out.println("时间:"+new Date()+",建立了与服务器的链接");
//输出流,服务器接收
OutputStream oos=s.getOutputStream();
oos.write("夏天来了,天真热!".getBytes());
oos.flush();
oos.close();
s.close();
}
}
运行结果: