Java套接字编程向服务器进行读写数据

简介

套接字最初叫伯克利套接字,因为是由伯克利大学最初发明的。在Java中,可以很方便地调用Socket进行网络通信。下面,就试着用套接字向远程服务器进行读写数据。

代码演示

package demo0811.demo1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;

/**
 * 应用套接字进行单词含义查询
 * @author zzw
 *
 */
public class DictionaryClient {
	private Socket socket=null;
	private static final int TIMEOUT=20000;
	private static final String SERVER="dict.org";
	private static final int PORT=2628;
	public DictionaryClient(String[] words) throws Exception {
		socket=new Socket(SERVER,PORT);
		socket.setSoTimeout(TIMEOUT);
		OutputStream outputStream = socket.getOutputStream();
		Writer outputStreamWriter = new OutputStreamWriter(outputStream);
		outputStreamWriter=new BufferedWriter(outputStreamWriter);

		InputStream inputStream = socket.getInputStream();
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
		for(String word:words)
			define(word,outputStreamWriter,bufferedReader);
	}

	private static void define(String word,Writer writer,BufferedReader reader) {
		try {
			writer.write("DEFINE eng-lat "+word+"\r\n");
			writer.flush();
			for(String line=reader.readLine();line!=null;line=reader.readLine()) {
				if(line.startsWith("250")) {
					return;
				} else if (line.startsWith("552")) {
					System.out.println("No definition for "+word);
					return;
				} else if(line.matches("\\d\\d\\d .*")) {
					continue;
				} else if(line.trim().equals(".")) {
					continue;
				} else {
					System.out.println(line);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

测试代码

package demo0811.demo1;

public class Test {

	public static void main(String[] args) throws Exception {
		String[] words={"you","computer","sky"};
		new DictionaryClient(words);
	}

}
时间: 2024-12-29 11:35:16

Java套接字编程向服务器进行读写数据的相关文章

Java套接字编程

实现了基于TCP的Java Socket编程实例代码:简单实现了服务器和客户端的套接字编程,并传递简单的字符串.(在服务器声明套接字时需要绑定服务器的端口,端口为临界资源只能一个套接字使用.服务器编程时调用accept()方法,服务器进入等待连接状态.) Java中TCP/IP服务端连接建立的源码实现(socket->bind->listen->accept): (1)在进行套接字编程的时候,首先我们要建立一个服务端,并在服务端建立套接字,为套接字绑定接口,然后监听客户端可能发来的连接建

Java套接字编程实现群聊与私聊[原理版]

简介 运用Java套接字我们几乎可以完成一个网络聊天软件的小产品,本文不涉及UI部分,仅对原理部分用代码演示一下.一个可以多人聊天的小功能,在Linux系统上用telnet亲测可用. 服务器代码 package demo0811.demo3; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.

python socket 套接字编程 单进程服务器 实现多客户端访问

服务器: 1 import socket 2 #单进程服务器 实现多客户端访问 IO复用 3 #吧所有的客户端套接字 放在一个列表里面,一次又一次的便利过滤 4 #这就是apache: select模型 6 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #设置端口复用 8 #AF_INET: IPV4 9

socket套接字编程

socket套接字编程 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发         详见网络通信原理   socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Soc

1.2.1 流式套接字编程

1.2  获取网络中计算机的IP地址和计算机名 在开发网络应用的过程中,经常需要获取网络中某台计算机的IP地址和计算机名称.在本节的内容中,将介绍如何使用Visual C++ 6.0开发一个实现上述功能的应用程序. 1.2.1  流式套接字编程(1) 网络数据的传输是通过套接字实现的.套接字有3种类型:流式套接字(SOCK_ STREAM),数据报套接字(SOCK_DGRAM)及原始套接字(RAW).在本小节的内容中,将首先讲解流式套接字编程的基本知识. 流式套接字是面向连接的,提供双向.有序.

基于UDP协议的socket套接字编程 基于socketserver实现并发的socket编程

基于UDP协议 的socket套接字编程 1.UDP套接字简单示例 1.1服务端 import socket server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 建立一个UDP协议的服务器 server.bind(("127.0.0.1",8080)) while True: data,addr = server.recvfrom(1024) server.sendto(data.upper(),addr) server

TCP和UDP套接字编程 (java实现)

在了解网络编程之前,我们先了解一下什么叫套接字 套接字即指同一台主机内应用层和运输层之间的接口 由于这个套接字是建立在网络上建立网络应用的可编程接口 因此也将套接字称为应用程序和网络之间的应用程序编程接口! 关于TCP和UDP这里就不作太多介绍了,我们知道TCP是面向连接的,UDP是不面向连接的,TCP可靠,UDP不可靠即可! 我们来设计一个应用来示范一下,流程: 客户机从键盘读取一行字符串,并通过套接字发送到服务器. 服务器从连接的套接字获取这行字符串,并对其进行修改(将小写转为大写),最后再

第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例

TCP客户与服务器进程之间发生的重大事件时间表 TCP服务器 socket() --- bind() --- listen() --- accept() --- read() --- write --- read() --- close TCP客户 socket() --- connect() --- write() --- read()  --- close() 套接字函数简介 int socket(int family, int type, int protocol); 指定要用的通信协议类

Linux 套接字编程中的 5 个隐患

在异构环境中开发可靠的网络应用程序 M. Tim Jones ([email protected]), 资深软件工程师, Emulex 简介: Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它们. 发布日期: 2005 年 10 月 08 日 级别: 中级 访问情况 : 13059 次浏览 评论: 0 (查看 | 添加评论 - 登录)  平均分 (34个评分)为本文评分 在