网络编程——服务器端

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class TestServer {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//1、创建服务器监听器
ServerSocket server = null;
try {
server = new ServerSocket(9527);
//2、开始监听
System.out.println("开始监听......");
while(true){
Socket socket = server.accept();//accept会进入阻塞状态,一旦有消息发送过来,就返回Socket对象
//3、开启子线程进行消息处理
new ProcessThread(socket);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(server != null){
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

}

public class ProcessThread extends Thread{
private Socket socket;

public ProcessThread(Socket socket){
this.socket = socket;
this.start();
}

@Override
public void run() {
// TODO Auto-generated method stub
//3、从Socket的InputStream取数据
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
System.out.println("接收的消息:" + msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(br != null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
if(socket != null){
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

}

时间: 2024-07-31 18:14:37

网络编程——服务器端的相关文章

0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)

1.迭代服务器模型 1.1 迭代服务器是处理多个请求时一种最简单直接的思路,即使用while循环,它不具有并发能力,即必须一个一个的处理客户的请求. 1.2 程序示例. #include "def.h" int listenfd_init(); //返回一个处于监听状态的套接字描述符 void do_service(int peerfd); // 处理客户端的请求 int main(int argc, const char *argv[]) { if(signal(SIGPIPE, S

Java网络编程——服务器端和客户端互发信息

引言 ? ? 为了学习Java网络编程,用一个QQ(屌丝版)作为例子练手,记录屌丝版QQ的开发过程,这里我们认为已经掌握其中的网络基础部分,即HTTP协议,TCP/IP协议等,在此基础上我们开始我们的Java网络部分的学习,我们要知道服务器和客户端是如何通信的,首先我们要了解Java网络知识中的一个很重要的东西--Socket ? ? Socket初探 ? ? ServerSocket和Socket ? ? 首先服务器端需要用到java.net包下的ServerSocket类,该类的一个实例用于

Java网络编程 - 服务器端和客户端的连接和信息传递实现

1.Client(客户端代码) package cn.qi.Client; import java.io.*; import java.net.Socket; public class Client { Socket clientSocket; Client() {} public void write() throws IOException { // 建立连接到服务器端的socket clientSocket = new Socket("127.0.0.1",5000); // 客

TCP面向连接网络编程

一 TCP&UDP协议 TCP,Tranfer Control Protocol,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作. UDP,User Datagram

TCP/IP网络编程 学习笔记_11 --多进程服务器端

并发服务器 首先,我们来假设有下面这样两种类型的服务器:第一种,第一个连接请求的受理时间为1s,第50个连接请求的受理时间为50s,第100个连接请求的受理时间为100s.即同时很多客服端连接,需要依次排队受理,但只要受理了,他们的服务时间平均只需1s.第二种,所有连接请求的受理时间不超过1s,但平均服务时间要2~3s. 即使有可能延长服务时间,我们实际网络编程中也一般选择第二种方式,使其可以同时向所有发起请求的客服端提供服务,以提高平均满意度.而且,网络程序中数据通信时间比CPU运算时间占比更

也谈服务器端网络编程

这里主要说一下自己看的书和一些心得体会,把自己的学习路线梳理一下,也是作为自己这段时间的学习总结. 因为从事的都是服务器端开发和学习,所以本文内容主要在该范围内,假定读者经过了系统的CS学习(DS.OS.组成原理等核心课程). First,我的学习书籍路线参考如下内容: 1 A:<Linux鸟哥私房菜>(第三版): 2 3 B:<Linux程序设计>(第四版 中文版): 4 5 C:<TCP/IP详解v1>(英文版): 6 7 D:C/C++语言相关: 8 9 E:&l

c网络编程(server服务器端,linux)

多进程 1 #include "network.h" 2 3 void do_service(int peerfd) 4 { 5 char recvbuf[1024] = {0}; 6 int ret; 7 while(1) 8 { 9 ret = readline(peerfd, recvbuf, 1024); 10 if(ret == 0) 11 { 12 close(peerfd); 13 exit(EXIT_SUCCESS); 14 } 15 //模拟数据处理过程 16 pri

服务器端编程心得(六)—— 关于网络编程的一些实用技巧和细节

这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了. 本文涉及的平台包括windows和linux,下面开始啦. 一.非阻塞的的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里.那么如何利用connect()函数编写非阻塞的连接代码呢?

c++ 网络编程(四)TCP/IP LINUX/windows下 socket 基于I/O复用的服务器端代码 解决多进程服务端创建进程资源浪费问题

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9613861.html 好了,继上一篇说到多进程服务端也是有缺点的,每创建一个进程就代表大量的运算与内存空间占用,相互进程数据交换也很麻烦. 本章的I/O模型就是可以解决这个问题的其中一种模型...废话不多说进入主题-- I/O复用技术主要就是select函数的使用. 一.I/O复用预备知识--select()函数用法与作用 select()用来确定一个或多个套接字的状态(更为本质一点来讲是文