网络编程

作业:

1.使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello,world”。


package one;

import java.net.*;  
public class Test02 {  
    public static void main(String[] args) throws Exception {  
        byte[] buf = new byte[1024];    
        DatagramSocket ds = new DatagramSocket(8001);  
        DatagramPacket dp = new DatagramPacket(buf, 1024);  
        ds.receive(dp);    
        String str = new String(dp.getData(),0, dp.getLength());  
        System.out.println(str);  
        ds.close();   
    }  
}  

package one;

import java.net.*;  
public class Test03 {  
    public static void main(String[] args) throws Exception {  
        DatagramSocket ds = new DatagramSocket(3000);  
        String str = "hello world";   
        DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(),  
                InetAddress.getByName("localhost"), 8001);  
        ds.send(dp);  
        ds.close();  
    }  
}  




2.使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello,world”,客户端收到数据后打印输出。


package two;

import java.io.*;  
import java.net.*;  
public class Test04 {  
    public static void main(String[] args) throws Exception {  
        new TCPServer().listen();  
    }  
}  
class TCPServer {  
    public void listen() throws Exception {  
        ServerSocket serverSocket = new ServerSocket(8002);  
        Socket client = serverSocket.accept();  
        OutputStream os = client.getOutputStream();  
        os.write(("hello world").getBytes());  
        Thread.sleep(5000);   
        os.close();  
        client.close();  
    }  
}  

package two;

import java.io.*;  
import java.net.*;  
public class Test05 {  
    public static void main(String[] args) throws Exception {  
        new TCPClient().connect();  
    }  
}  
class TCPClient {               
    public void connect() throws Exception {  
        Socket client = new Socket(InetAddress.getLocalHost(), 8002);  
        InputStream is = client.getInputStream();       
        byte[] buf = new byte[1024];  
        int len = is.read(buf);  
        System.out.println(new String(buf, 0, len));  
        client.close();                                      
    }  
}  



已标记关键词 清除标记
相关推荐
<p> 这是一门linux下c++通讯架构实战课程,针对c/c++语言已经掌握的很熟并希望进一步深造以将来用c++在linux下从事网络通讯领域/网络服务器的开发和架构工作。<br /> <br /> 这门课程学习难度颇高但也有着极其优渥的薪水(最少30K月薪,最高可达60-80K月薪),这门课程,会先从nginx源码的分析和讲解开始,逐步开始书写属于自己的高性能服务器框架代码,完善个人代码库,这些,将会是您日后能取得高薪的重要筹码。 </p> <p> <br /> </p> <p> <span style="color:#E53333;">本课程原计划带着大家逐行写代码,但因为代码实在过于复杂和精细,带着写代码可能会造成每节课至少要4~5小时的超长时间,所以老师会在课前先写好代码,主要的时间花费在逐行讲解这些代码上,这一点望同学们周知。如果你觉得非要老师领着写代码才行的话,老师会觉得你当前可能学习本门课程会比较吃力,请不要购买本课程,以免听不懂课程并给老师差评,差评也会非常影响老师课程的销售并造成其他同学的误解。</span> </p> <p> <br /> </p> <p> 这门课程要求您具备下面的技能:<br /> (1)对c/c++语言掌握的非常熟练,语言本身已经不是继续学习的障碍,并不要求您一定熟悉网络或者linux;<br /> (2)对网络通讯架构领域有兴趣、勇于挑战这个高难度的开发领域并期望用大量的付出换取高薪;<br /> <br /> 在这门课程中,实现了一个完整的项目,其中包括通讯框架和业务逻辑框架,浓缩总结起来包括如下几点:<br /> (1)项目本身是一个极完整的多线程高并发的服务器程序;<br /> (2)按照包头包体格式正确的接收客户端发送过来的数据包, 完美解决收包时的数据粘包问题;<br /> (3)根据收到的包的不同来执行不同的业务处理逻辑;<br /> (4)把业务处理产生的结果数据包正确返回给客户端;<br /> <br /> 本项目用到的主要开发技术和特色包括:<br /> (1)epoll高并发通讯技术,用到的触发模式是epoll中的水平触发模式【LT】;<br /> (2)自己写了一套线程池来处理业务逻辑,调用适当的业务逻辑处理函数处理业务并返回给客户端处理结果;<br /> (3)线程之间的同步技术包括互斥量,信号量等等;<br /> (4)连接池中连接的延迟回收技术,这是整个项目中的精华技术,极大程度上消除诸多导致服务器程序工作不稳定的因素;<br /> (5)专门处理数据发送的一整套数据发送逻辑以及对应的发送线程;<br /> (6)其他次要技术,包括信号、日志打印、fork()子进程、守护进程等等; </p> <div> <br /> </div>
<p> <span style="color:#3D3D3D;"></span> </p> <span style="font-size:18px;">     本课程为JavaSE基础阶段的项目实战视频,主要使用技术均为JavaSE基础,手把手带你构建在线聊天室,需要JavaSE基础才能进行实战与开发,学习前需要掌握的技能有:逻辑基础、面向对象、异常处理、集合框架、IO流、网络编程、多线程、GUI技术,学完本套课程,你会对JavaSE有一个更深入的认知,为后续课程的学习打下一个坚实的基础。<br /> </span> <p> <br /> </p> <p> <br /> </p> <p> <span style="color:#3D3D3D;"><strong>课程大纲</strong></span> </p> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> <span style="font-size:18px;">1. </span><span style="color:#222222;">网络聊天室认知及原理</span><span style="font-size:18px;">;</span> </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> <span style="font-size:18px;">2. 登录、</span><span style="color:#222222;">聊天室、服务端界面制作</span><span style="font-size:18px;">;</span> </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> <span style="font-size:18px;">3. 客户端/服务端</span><span style="color:#222222;">网络通信实现</span><span style="font-size:18px;">;</span> </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> 4. 通信机制设计; </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> 5. 在线统计、消息收发主功能实现; </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> <span style="font-size:18px;">6. 服务端主功能实现;</span> </div> <span style="color:#3D3D3D;"> </span> <div style="text-align:left;"> 7. 字体及图片样式发送; </div>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页