Socket协议编程实践【分布式计算】
Socket之UDP和TCP
文章目录
前言
一、什么是Socket
独立于具体协议的网络编程接口
在ISO模型中,主要位于会话层和传输层之间
BSD Socket(伯克利套接字)是通过标准的UNIX文件描述符和其他程序通讯的一个办法,目前已经被广泛移植到各个平台。
二、为什么要使用Socket
三、套接字
四、实验目标:给定包含学号和成绩的服务器文件,分别基于UDP和TCP,编写程序,实现客户端通过学号获取对应成绩。
1.基于UDP实现
UDPServer.java
import java.net.*;
import java.util.Arrays;
import java.io.*;
public class UDPServer{
public static void main(String args[]){
DatagramSocket aSocket = null;
try{
aSocket = new DatagramSocket(8080);//端口号为:8080
byte[] buffer = new byte[1000];
byte[] id = new byte[1000];
byte[] score = new byte[1000];
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
aSocket.receive(request);
BufferedReader i = new BufferedReader(new FileReader("C:\\Users\\Linyz\\Desktop\\data.txt"));
String str;
while ((str = i.readLine()) != null) {
String[] tokens = str.split(",");
id = tokens[0].getBytes();
score = tokens[1].getBytes();
int nLen = request.getLength();
String r,I;
r = new String(request.getData(),0,nLen);
I = new String(id);
if (r.equals(I)) {
request.setData(score);
DatagramPacket reply = new DatagramPacket(request