java 基TCP的多线程 网络编程

简介:   /* 在开发网络应用程序的时候  如果发送数据使用了  OutoutStream ->BufferedOutputStream 流的链接 那么   一定要在发送数据完成的时候 调用 flush或者 关闭链接流  否则 接收端可能接收不到数据  。
 

/*
在开发网络应用程序的时候  如果发送数据使用了  OutoutStream ->BufferedOutputStream 流的链接 那么 
 一定要在发送数据完成的时候 调用 flush或者 关闭链接流  否则 接收端可能接收不到数据  。。。
 直到缓冲区满了 数据才会发送出去 
*/
package me;
import java.net.* ;
import java.io.* ;
public class JavaNet extends Thread
{
  private Socket ss;
  public static void main(String []args)
  {

     if(args.length>0)
       runServer() ;
       else
         runClient()  ;
  }

  JavaNet(Socket ss)  throws Exception
  {
    this.ss=ss ;
   InputStream in= ss.getInputStream() ;  //获得输入流
   OutputStream out=ss.getOutputStream() ;  //获得输出流
   out.write("hellow welcome".getBytes()) ;  //向输出流写入数据
   byte ch[] =new byte[100];
   int num=in.read(ch) ;
   System.out.println(new String(ch,0,num));
   in.close();
   out.close();
   ss.close();
  }
public  void run()
  {

  }
  static public  void runServer()   //服务端
  {
    try
   {
     ServerSocket s1 = new ServerSocket(6666);
     while(true)
   {
     Socket ss=s1.accept() ;   //等待连接的到来
     new JavaNet(ss).start() ;
   }


   }catch(Exception e)
   {
     e.printStackTrace();
   }
  }
 static  public void runClient()   //客户端
  {
       try{
         Socket ss=new Socket(InetAddress.getByName("127.0.0.1"),6666) ;   //getByname null返回本地IP   "LocalHost" 返回本地  IP也返回本地
         OutputStream out=ss.getOutputStream() ;  //获得输出流   向服务器写入数据
         out.write("I am  zhangsan ".getBytes());


       }
       catch (Exception e)
       {
         e.printStackTrace();
       }

 

 

  }

 

 

 


}

目录
相关文章
|
15天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
2天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
7天前
|
监控 Java 开发者
深入理解 Java 网络编程和 NIO
【4月更文挑战第19天】Java网络编程基于Socket,但NIO(非阻塞I/O)提升了效率和性能。NIO特点是非阻塞模式、选择器机制和缓冲区,适合高并发场景。使用NIO涉及通道、选择器和事件处理,优点是高并发、资源利用率和可扩展性,但复杂度、错误处理和性能调优是挑战。开发者应根据需求选择是否使用NIO,并深入理解其原理。
|
9天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
11天前
|
JavaScript Java 测试技术
基于Java的网络游戏交易系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络游戏交易系统的设计与实现(源码+lw+部署文档+讲解等)
26 0
|
11天前
|
SQL 安全 Java
Java安全编程:防范网络攻击与漏洞
【4月更文挑战第15天】本文强调了Java安全编程的重要性,包括提高系统安全性、降低维护成本和提升用户体验。针对网络攻击和漏洞,提出了防范措施:使用PreparedStatement防SQL注入,过滤和转义用户输入抵御XSS攻击,添加令牌对抗CSRF,限制文件上传类型和大小以防止恶意文件,避免原生序列化并确保数据完整性。及时更新和修复漏洞是关键。程序员应遵循安全编程规范,保障系统安全。
|
14天前
|
JavaScript Java 测试技术
基于Java的网络游戏交易平台信息管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络游戏交易平台信息管理系统的设计与实现(源码+lw+部署文档+讲解等)
26 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
41 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
|
1月前
|
机器学习/深度学习 算法 计算机视觉
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
29 2