java网络编程:基于TCP的socket编程

发布时间:2017-2-21 13:18:16 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java网络编程:基于TCP的socket编程",主要涉及到java网络编程:基于TCP的socket编程方面的内容,对于java网络编程:基于TCP的socket编程感兴趣的同学可以参考一下。

服务器程序编写: ①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。④最后关闭通信套接字。 客户端程序编写: ①调用Socket()创建一个流套接字,并连接到服务器端; ②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。 ③最后关闭通信套接字。   下面给出多线程的实现: 服务器端: package socket; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void server() { try { // 创建serversocket,绑定端口 ServerSocket ss=new ServerSocket(6000); while(true) { //accept()函数处于阻塞状态,直到收到客户端的连接 Socket s = ss.accept(); //多线程处理机制,每当收到一个链接,就创建一个新的线程去处理它 new Network(s).start(); } //ss.close(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { // TODO Auto-generated method stub server(); } }   package socket; import java.io.BufferedOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class Network extends Thread { private Socket s; public Network(Socket s) { this.s=s; } public void run() { try { OutputStream os=s.getOutputStream(); //输出流采用缓冲机制 BufferedOutputStream bos=new BufferedOutputStream(os); InputStream is=s.getInputStream(); bos.write("hi,welcome you!".getBytes()); //flush()函数强制缓冲区的内容输出,如果不用此函数,只有当缓冲区满后才输出 bos.flush(); byte[] buf=new byte[100]; int len=is.read(buf); System.out.println(new String(buf,0,len)); os.close(); bos.close(); is.close(); s.close(); } catch (Exception ex) { ex.printStackTrace(); } } } 客户端: package socket; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; public class TCPClient { public static void client() { try { //客户端创建Socket对象,传入服务器端的地址和端口号 Socket s=new Socket(InetAddress.getByName(null),6000); OutputStream os=s.getOutputStream(); InputStream is=s.getInputStream(); byte[] buf=new byte[100]; int len=is.read(buf); System.out.println(new String(buf,0,len)); os.write("Hi,this is client".getBytes()); os.close(); is.close(); s.close(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { // TODO Auto-generated method stub client(); } }  

上一篇:WEBQQ登陆综合帖
下一篇:DateFormat setLenient

相关文章

相关评论