关键词:
客户端代码:
public class ClientDemo public static void main(String[] args) throws IOException //创建客户端Scoket对象 Socket s= new Socket("192.168.50.76",44444); //封装文本文件数据 BufferedReader br = new BufferedReader(new FileReader("myNet\\InetAddressDemo.java")); //输出流 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); String line; while ((line = br.readLine())!=null) bw.write(line); bw.newLine(); bw.flush(); //使输出终止 s.shutdownOutput(); //客户端接收反馈 BufferedReader brClient = new BufferedReader(new InputStreamReader(s.getInputStream())); String data = brClient.readLine(); System.out.println("服务器的反馈:"+data); //释放资源 s.close(); br.close();
服务器端代码:
public class ServerDemo public static void main(String[] args) throws IOException //创建客户端Socket对象 ServerSocket ss = new ServerSocket(44444); //为每一个客户端开启一个线程 while (true) //监听客户端连接 Socket s = ss.accept(); new Thread(new ServerThread(s)).start();
实现Runnable接口的SeverThread类:
public class ServerThread implements Runnable private Socket s; public ServerThread(Socket s) this.s=s; @Override public void run() //接受数据写入到文件 try BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //解决名称冲突问题 int count = 0; File file = new File("myNet\\Copy["+count+"].java"); while (file.exists()) count++; file = new File("myNet\\Copy["+count+"].java"); BufferedWriter bw = new BufferedWriter(new FileWriter(file)); String line; while ((line=br.readLine())!=null) bw.write(line); bw.newLine(); bw.flush(); //给出反馈 BufferedWriter bwServer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bwServer.write("文件上传成功"); bwServer.newLine(); bwServer.flush(); catch (IOException e) e.printStackTrace();
运行结果:客户端程序每上传一次文件,服务器都会给出一次反馈
网络编程——java(代码片段)
网络编程1、什么是计算机网络2、网络通信的两个要素3、IP地址4、端口Port5、通信协议6、TCP实现聊天7、TCP文件上传实现8、初识Tomcat9、UDP消息发送10、UDP聊天实现11、UDP多线程在线咨询12、URL下载网络资源1、什么是计算机网络什... 查看详情
javase-21.3.2tcp通信程序练习1(代码片段)
1packageday12.lesson3.p1;23importjava.io.IOException;4importjava.io.InputStream;5importjava.io.OutputStream;6importjava.net.Socket;78/*93.3TCP通信程序练习110案例需求11客户端:发送数据,接受服务器反馈12服务器:收到消息后给出反馈13案例分析14客户端创 查看详情
python网络编程--tcp/ip
...当中,方便对比服务端与客户端的不同。TCP/IP是因特网的通信协议,其参考OSI模型,也采用了分层的方式,对每一层制定了相应的标准。网际协议(IP)是为全世界通过互联网连接的计算机赋予统一地址系统的机制,它使得数据... 查看详情
102.tcp实现多线程连接与群聊(代码片段)
...的关系socket在哪socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部... 查看详情
多线程核心知识(代码片段)
...join使线程阻塞住。 死亡:run方法运行完毕。多线程通信yieldyield()让出线程时间片,增大线程切换的几率。由于它是native修饰的,所以是通过其他语言直接操作机器实现的。publicstaticnativevoidyield();sleepsleep(longmillis)会让线程阻... 查看详情
6-4线程练习题:多线程爬虫(代码片段)
编写多线程爬虫如何使用Python的threading模块1.请你使用python的threading模块2.要求1:该类可以传入最大线程数和需要抓取的网址列表3.要求2:该类可以通过继承的方式提供一个处理response的方法 查看详情
网络编程tcp/ip协议-----多进程多线程服务器(代码片段)
1、前言上一篇已经实现了服务器端与客户端之间最基础通信,但存在一些问题,最大的问题是上篇中一个服务器端只能连接一个客户端,如何让一个服务器端可以连接多个客户端呢?利用多进程多线程实现。2、... 查看详情
boost::asio::ip::tcp实现网络通信的小例子(代码片段)
...一直等客户端连进来,连上以后再通过这个socket与客户端通信,而所有的通信都是以阻塞方式进行的,读完或写完才会返回。在客户端也一样,这时我会拿着socket去连接服务器,当然也是连上或出错了才返回,最后也是以阻塞的... 查看详情
linux网络编程基础及多线程并发案例(代码片段)
...listenaccept7.客户端基本函数 connect8.send和recv 8.多线程9.通信流程10.多线程并发样例程序 1.ip:端口 TCP/IP协议 AF_INET 查看详情
模拟售票程序(关于多线程共享的练习)
继承Tread来实现多线程的话,写出的类就是Thread的一个子类,所以用这个自定义类产生的对象就是一个线程;而通过实现Runnable实现类来实现多线程,还要声明一个Thread类的对象,将这个Runnable实现类的对象传入Thread类的一个构造... 查看详情
java多线程(详细了解java多线程机制)(代码片段)
...例5.2同步代码块5.3同步方法5.4Lock锁5.5线程死锁六、线程通信问题6.1wait()和wait(longtimeout)6.2notify()和notifyAll()6.3生产者和消费者问题一、程序、进程、线程1.1什么是程序程序(program):是为完成特定任务、用某种语言编写的一组指... 查看详情
网络编程案例多任务版tcp服务端程序开发(代码片段)
案例-多任务版TCP服务端程序开发案例-多任务版TCP服务端程序开发1.需求2.具体实现步骤3.多任务版TCP服务端程序的示例代码4.小结模拟QQ聊天-客户端模拟QQ聊天-服务端案例-多任务版TCP服务端程序开发学习目标能够说出多任务版TCP... 查看详情
java多线程-管道流实现线程间通信(代码片段)
...入管道流中读取数据。通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。字节流PipedInputStream和PipedOutputStream字符流PipedReader和Pip 查看详情
狂神说java笔记--网络编程部分笔记(代码片段)
...;有的知识点并没有整理进来.ml1.什么是计算机网络2.网络通信的两个要素3.IP地址4.port:端口5.通信协议6.TCP实现聊天7.TCP文件上传实现8.UDP消息发送9.UDP实现聊天10.UDP实现聊天(两边都可以发送接收消息)1.什么是计算机网络计算机网络... 查看详情
多线程练习题
多线程练习题编写程序实现,子线程循环3次,接着主线程循环5次,接着再子线程循环3次,主线程循环5次,如此反复,循环3次第一种实现方式:使用synchronized关键字?packagecom.aaa.test;?publicclassTest1? privatebooleanflag=false;?// 主线程要实... 查看详情
第四次过程性考核(代码片段)
第四次过程性考核——多线程通信码云仓库地址:https://gitee.com/smr_777/16012021_assessment_iv/tree/master使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中 要... 查看详情
java多线程:线程间通信方式(代码片段)
文章目录Java线程通信wait()、notify()、notifyAll()API说明实现原理代码实现await()、signal()、signalAll()API说明实现原理代码实现BlockingQueueAPI说明实现原理代码实现Java线程通信在Java中线程通信主要有以下三种方式:wait()、notify()、noti... 查看详情
java多线程:线程间通信方式(代码片段)
文章目录Java线程通信wait()、notify()、notifyAll()API说明实现原理代码实现await()、signal()、signalAll()API说明实现原理代码实现BlockingQueueAPI说明实现原理代码实现Java线程通信在Java中线程通信主要有以下三种方式:wait()、notify()、noti... 查看详情