网络编程

1 篇文章 0 订阅
0 篇文章 0 订阅

网络编程

今天我们学习了网络编程,并对它有了一定的了解,网络编程是指编写与其他计算机进行通信的程序。

协议

也了解到了TCP、UDP协议的特点:
TCP协议传输控制协议、特点是面向连接、数据可靠安全、基于字节流的运输层(Transport layer)通信协议
UDP协议用户数据报协议、特点是面向无连接、数据不可靠、但UDP也 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法

套接字

因为学习了网络通信,所以我也了解到了套接字( socket),就是将应用程序与端口连接起来的程序叫套接字(有字多的详细的:套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。)。

端口

端口可以认为是计算机与外界通讯交流的门,而端口号就是打开门的钥匙。
常见的端口号有
HTTP服务一般用的80端口
FTP服务默认使用的21端口
0~1023之间的端口号多用于一些知名的网络服务和应用
用户的普通网络建议使用1024以上的端口号,以免冲突(注意:端口号只有整数,范围是从0 到65535)。
我在老师的讲解河教导下做了一个简单的端口数据传递,代码如下:
这是客户端(Client)的

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Clien {
public static void main(String[] args) throws Exception, IOException {
//创建一个客户端的Socket对象
Socket s = new Socket(“localhost”,11010);

	//通过socket对象调用getOutputStream方法得到一个输出流对象
	OutputStream out = s.getOutputStream();
	
	//定义要向服务端发送的内容
	String name = "我*你个**";
	
	//将内容转化成字节数组
	byte[] b=name.getBytes();
	
	//使用输出流对象调用write方法将内容写入流
	out.write(b);
}

}

然后是服务端(Server)的
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Serv {
public static void main(String[] args) throws IOException {
//创建一个服务端套接字对象
ServerSocket s = new ServerSocket(11010);

	//通过服务端套接字对象调用accept方法监听客户的请求
	Socket ss = s.accept();
	
	//使用socket对象获取输入流对象
	InputStream in = ss.getInputStream();
	
	//定义一个字节数组
	byte[] b = new byte[1024];
	//使用输入流对象读取内容
	int len = in.read(b);
	//将读取的内容转换成字符串并打印出来
	String res = new String(b,0,len);
	System.out.println("客户端发来的消息:"+res);
}

}
这个只限于在同一台电脑上,先运行服务端,再运行客户端。要想从这台电脑发到另一台电脑上的话要知道IP地址的,并且在同一局域网下,具体是把客户端的Socket s = new Socket(“localhost”,11010);中的ocalhost改成IP地址(好像是这样的)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值