当前位置: 首页 > news >正文

创意网站建设/郑州网站开发公司

创意网站建设,郑州网站开发公司,publisher做的网站如何获得url,日本真人做爰无遮挡视频免费网站1.什么是网络编程 网络编程其实就是实现两个计算机的数据交换(交互)。 可以通过直接或间接的通过网络协议与其他的计算机进行通讯。(HTTP协议,TCP/IP协议等) 2.Tcp网络编程的实现流程 主要分为服务器端(Ser…

1.什么是网络编程

  网络编程其实就是实现两个计算机的数据交换(交互)。

  可以通过直接或间接的通过网络协议与其他的计算机进行通讯。(HTTP协议,TCP/IP协议等)

2.Tcp网络编程的实现流程

  主要分为服务器端(Server)和客户端(Client)。

  通过这个图我们其实就可以了解了实现服务器和客户机交互过程是怎么样的了。

  实现这些原理最重要的是Socket类也叫做套接字。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

 

服务器端

1.首先创建ServerSocket对象并且设置与外界通讯的端口号,这样就建立了一个可以供其它计算机访问的端口了(这里端口号是可以随便取得但是是在1024~65535之间,因为0~1023被预先通讯的服务占用(比如http占用80端口,telnet占用了23端口等))。

  ServerSocket servesocket = new ServerSocket(2222);

  

2.然后调用accept()方法,监听连接请求,如果客户端请求连接,则接受链接,并且返回通信套接字(Socket)。

  Socket socket = serversocket.accept()

 

3.获取输入输出流

  获取socket的输入流

  BufferedReader br = new BufferedReader(new getInputSteamReader(socket.getInputStream()))

  获取socket的输出流

  PrintWriter out = new PerintWriter(socket.getOutputStream())

  

4.最后就是关闭Scoket

  socket.close()

 

客户端

1.创建socket对象,并实现socket的有参构造方法,输入ip地址和端口号 (这里的address就是IP地址,port就是端口号)

  Socket socket = new Socket(InetAddress address,int port)

 

2.获取Socket的输入输出流

  获取socket的输入流

 

  BufferedReader br = new BufferedReader(new getInputSteamReader(socket.getInputStream()))

 

  获取socket的输出流

 

  PrintWriter out = new PerintWriter(socket.getOutputStream())

 

 

3.关闭Socket

  socket.close()

 

上面就是实现服务器端和客户端交互的主要流程下面我们来看一下具体实例:

服务器端

 1     public static void Server(){
 2         try {
 3             //创建ServerSocket对象并且定义连接端口
 4             ServerSocket serversocket = new ServerSocket(2222); 
 5             //实现连接监听
 6             Socket socket = serversocket.accept();            
 7             //获取socket输出流
 8             BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
 9             //获取socket输入流
10             PrintWriter out = new PrintWriter(socket.getOutputStream());    
11             //通过输出流获取客户端传来的信息
12             String str=br.readLine();
13             //输出信息
14             System.out.println(str);
15             
16             //通过输入流向客户端发送信息
17             out.write("成功收到客户端传递的信息");
18             //刷新写入
19             out.flush();
20             
21             //关闭输出流
22             br.close();
23             //关闭输入流
24             out.close();
25             //关闭serversocket
26             serversocket.close();
27         } catch (IOException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }
31     }
32 
33     public static void main(String[] args) {
34         Server();
35     }

客户端

 1 public static void Clien(){
 2         try {
 3             //创建socket对象并写入ip地址和端口号(这里是可以通过手动写入的,我这里写的是最简单的之交互一次的例子)
 4             Socket socket = new Socket("192.168.0.102",2222);
 5             //获取输入流
 6             PrintWriter out = new PrintWriter(socket.getOutputStream());
 7             BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 8             //读取从控制台输入的信息
 9             BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
10             //获取控制台输入的信息
11             String str=in.readLine();
12             //将控制台中的信息写入
13             out.write(str);
14             //刷新写入
15             out.flush();
16             //关闭输入流(这里用shutdown是只关闭输入流这一个流,如果不关闭则会无限次写,客户端和服务端卡死,无法进行下一步动作)
17             //如果是用out.close();是会把socket这个对象的流给关闭,等到下面需要读取客户端信息的时候就会显示socket closed的错误。
18             socket.shutdownOutput();
19             
20             //获取服务器端传来的信息
21             String serverstr=br.readLine();
22             System.out.println(serverstr);
23             //关闭
24             br.close();
25             socket.close();    
26         } catch (UnknownHostException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         } catch (IOException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         }
33     }
34 
35     public static void main(String[] args) {
36         Clien();
37     }

我这里写的只是服务器和客户机的一次交互的最简单的操作。

如果想要实现一直在交互,直到输入某个字符后退出交互,可以使用循环。

 1 while(true){
 2     String str = br.readLine();
 3     System.out.println(str);
 4         
 5     out.write("成功收到客户端传递的信息");
 6     out.flush();
 7     if(str.equals("end")){
 8        break
 9     }
10 }

上面是服务器端的循环交互的代码。客户端差不多,我就不写了

最后总结一下:实现交互的流程

1.创建socket对象(服务端创建Serversocket对象,并且监听)

2.获取输入输出流

3.关闭

其实主要就是这三点,如果想进行更复杂的交互,则可以在输入输出中继续添加即可

 

转载于:https://www.cnblogs.com/XiaojianGo/p/7487716.html

http://www.jmfq.cn/news/4960693.html

相关文章:

  • 陕西建设厅官网系统平台/东莞网站seo推广
  • 弹簧机 东莞网站建设/关键词优化公司哪家推广
  • 网站建设公司的业务规划/成都高新seo
  • 一屏网站模板下载 迅雷下载 迅雷下载地址/电商网站模板
  • 四线城市做网站建设怎么样/怎么提交网址让百度收录
  • 全球电子商务网/徐州网页关键词优化
  • 哪个网站做头像比较好/网络营销服务的特点
  • 公司产品网站应该怎么做/seo搜索排名
  • 网站备案为什么这么慢/企业网站制作模板
  • 建设厅安全员/教程推广优化网站排名
  • 网站建设综合实训/网站监测
  • 专门做儿童的店铺网站/360指数查询工具
  • 看b站视频软件24小时免费下载/html制作网页代码
  • 滕州市做网站/太原seo快速排名怎么样
  • 长沙旅游网站开发/网站关键词排名快速提升
  • 社团的工商年检网站在哪里做/广东seo快速排名
  • 公司入口网站app/aso网站
  • 厦门石材网站建设/企业品牌类网站有哪些
  • 公司网站建设需求书/百度广告投放价格表
  • 张家口网站设计/怎么自己做网站
  • 有路由器做网站/seo是什么?
  • 动漫制作专业属于什么大类/seo新闻
  • 龙岩企业网站建设制作/莱阳seo排名
  • 北京建网站 优帮云/非企户百度推广
  • 安徽和城乡建设厅网站/关于营销的最新的新闻
  • 衡阳哪有做网站推广的/烟台网络推广
  • vs做的网站如何/磁力bt种子搜索
  • 安丘做网站的公司/微信怎么引流营销呢
  • 石家庄公司网站如何制作/前端培训费用大概多少
  • 大德通众包网站建设/百度应用商店app下载安装