Professional Documents
Culture Documents
com
Ni dung mn hc
CHNG 1: GII THIU V TCP/IP
CHNG 2: THIT K GII THUT CHO
CHNG TRNH CLIENT/SERVER
CHNG 3: LP TRNH MNG TRN CC MI
TRUNG PH DNG
CHNG 4: LP TRNH MNG VI JAVA
Ni dung mn hc(tt)
CHNG 5: LP TRNH WEB CGI
CHNG 6: LP TRNH WEB VI CC CNG
NGH PH BIN
CHNG 7: NG DNG XML TRONG LP
TRNH MNG
CHNG 8: BO MT D LIU TRUYN
1
Tm kim & download ebook: bookilook.com
2
Tm kim & download ebook: bookilook.com
SOCKADDR_IN ser_addr;
ser_addr.sin_family=AF_INET;
ser_addr.sin_port=htons(2000);
ser_addr.sin_addr.s_addr=
inet_addr(172.28.10.20);
if(connect(s,(LPSOCKADDR)&ser_addr,
sizeof(ser_addr))==SOCKET_ERROR){
MessageBox(Can not connect to server);
}
Lp trnh mng Chng 3 112
56
Tm kim & download ebook: bookilook.com
4
Tm kim & download ebook: bookilook.com
5
Tm kim & download ebook: bookilook.com
data link
ic
physical
a
le
data link
-e
physical network
nhau
nd
data link
physical
tr
an
network
C hai dng dch v:
spo
data link
physical
rt
Protocol)
6
Tm kim & download ebook: bookilook.com
7
Tm kim & download ebook: bookilook.com
8
Tm kim & download ebook: bookilook.com
9
Tm kim & download ebook: bookilook.com
10
Tm kim & download ebook: bookilook.com
11
Tm kim & download ebook: bookilook.com
host or host or
server server
Lp trnh mng Chng 1 24
12
Tm kim & download ebook: bookilook.com
13
Tm kim & download ebook: bookilook.com
1.3Server
Khi nim v Socket(tt)
(running on hostid) Client
create socket,
port=x, for
incoming request:
welcomeSocket =
ServerSocket()
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
14
Tm kim & download ebook: bookilook.com
sentence = inFromUser.readLine();
Send line
to server outToServer.writeBytes(sentence + '\n');
clientSocket.close();
}
}
class TCPServer {
15
Tm kim & download ebook: bookilook.com
16
Tm kim & download ebook: bookilook.com
write reply to
serverSocket
specifying client read reply from
host address, clientSocket
port umber close
Lp trnh mng Chng 1 clientSocket 33
class UDPClient {
public static void main(String args[]) throws Exception
{
Create
input stream BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Create
client socket DatagramSocket clientSocket = new DatagramSocket();
17
Tm kim & download ebook: bookilook.com
class UDPServer {
public static void main(String args[]) throws Exception
Create {
datagram socket
at port 9876 DatagramSocket serverSocket = new DatagramSocket(9876);
while(true)
{
Create space for
received datagram DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Receive serverSocket.receive(receivePacket);
datagram
Lp trnh mng Chng 1 36
18
Tm kim & download ebook: bookilook.com
sendData = capitalizedSentence.getBytes();
Create datagram
to send to client DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
Write out port);
datagram
to socket serverSocket.send(sendPacket);
} End of while loop,
} loop back and wait for
} another datagram
19
Tm kim & download ebook: bookilook.com
20
Tm kim & download ebook: bookilook.com
6. Lp li cc bc 1-5 cho mi
lin kt(object)
Lp trnh mng Chng 1 41
21
Tm kim & download ebook: bookilook.com
22
Tm kim & download ebook: bookilook.com
23
Tm kim & download ebook: bookilook.com
24
Tm kim & download ebook: bookilook.com
25
Tm kim & download ebook: bookilook.com
user
RFC 821, 822 server
agent
user
outgoing agent
message queue
user
user mailbox agent
26
Tm kim & download ebook: bookilook.com
27
Tm kim & download ebook: bookilook.com
CHNG 2
THIT K GII THUT CHO CHNG
TRNH CLIENT/SERVER
28
Tm kim & download ebook: bookilook.com
struct in_addr
{
u_long s_addr; s_addr
};
in_addr
29
Tm kim & download ebook: bookilook.com
sockaddr_in
struct sockaddr_in
Hnh - Cu trc a ch socket
{
u_char sin_len;
u_short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
Lp trnh mng Chng 2 59
30
Tm kim & download ebook: bookilook.com
Socket
31
Tm kim & download ebook: bookilook.com
Stream Datagram
socket socket
interface interface Raw
socket
interface
TCP UDP
IP
32
Tm kim & download ebook: bookilook.com
33
Tm kim & download ebook: bookilook.com
34
Tm kim & download ebook: bookilook.com
35
Tm kim & download ebook: bookilook.com
36
Tm kim & download ebook: bookilook.com
37
Tm kim & download ebook: bookilook.com
38
Tm kim & download ebook: bookilook.com
39
Tm kim & download ebook: bookilook.com
40
Tm kim & download ebook: bookilook.com
41
Tm kim & download ebook: bookilook.com
42
Tm kim & download ebook: bookilook.com
43
Tm kim & download ebook: bookilook.com
CHNG 3
LP TRNH MNG TRN CC MI
TRNG PH DNG
3.1 Lp trnh mng trong UNIX
3.2 Cc hm h tr lp trnh mng trong UNIX
3.3 Lp trnh mng trong Windows vi TCP/IP
3.4 Cc hm h tr lp trnh mng trong Windows
44
Tm kim & download ebook: bookilook.com
45
Tm kim & download ebook: bookilook.com
3.2 Cc hm (tt)
a ch socket tng qut:
#include <sys/socket.h>
struct sockaddr {
short sa_family;
char sa_data[14];
};
H a ch socket c nh ngha trong
<sys/socket.h>:
#define AF_UNIX 1/* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
3.2 Cc hm (tt)
Cu trc a ch my t xa.
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
#define h_addr h_addr_list[0];
}
46
Tm kim & download ebook: bookilook.com
3.2 Cc hm (tt)
To socket:
#include <sys/types.h>
#include <sys/socket.h>
int socket(int family, int type, int protocol);
V d to socket:
int sockfd;
//To stream socket
sockfd = socket(AF_INET,SOCK_STREAM,0);
//To datagram socket
sockfd = socket(AF_INET,SOCK_DGRAM,0);
3.2 Cc hm (tt)
Lin kt socket vi a ch socket(ng k)
int bind(int sockfd, struct sockaddr *myaddr,
int myaddrlen);
V d bind socket va to vi a ch socket:
struct sockaddr_in myaddr;
bzero((char*)&myaddr,sizeof(myaddr));
myaddr.sin_family = AF_INET;
myaddr.sin_port = htons(portno);
myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sockfd, (struct sockaddr *) &myaddr,
sizeof(myaddr)) < 0) error("ERROR on binding");
Lp trnh mng Chng 3 94
47
Tm kim & download ebook: bookilook.com
3.2 Cc hm (tt)
Chuyn socket v trng thi ch kt ni.
int listen(int sockfd, int backlog);
Chp nhn yu cu kt ni t client.
int accept(int sockfd, struct sockaddr_in *peer,
int *addrlen);
struct sockaddr_in cli_addr;int newsockfd,clilen;
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr*)&cli_addr, &clilen);
if (newsockfd < 0) error("ERROR on accept");
Lp trnh mng Chng 3 95
3.2 Cc hm (tt)
Hm kt ni n server
int connect(int sockfd, struct sockaddr *servaddr,
int *addrlen);
V d:
struct sockaddr_in servaddr;
bzero((char*)&servaddr,sizeof(myaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(portno);
servaddr.sin_addr.s_addr = inet_addr(serverIP);
if (connect(sockfd, (struct sockaddr *) &servaddr,
sizeof(servaddr)) < 0)
error(Can not connect to server");
48
Tm kim & download ebook: bookilook.com
3.2 Cc hm (tt)
Cc hm truyn nhn d liu:
int read(int fd,char *buf, int nbytes);
int write(int fd,char *buf,int nbytes);
int send(int sockfd, char *buf,int nbytes,int flags);
int recv(int sockfd, char *buf,int nbytes,int flags);
int sendto(int sockfd, char *buf, int len, int flags,
struct sockaddr_in *toaddr, int toaddrlen);
int recvfrom(int sockfd, char *buf, int len, int flags,
struct sockaddr_in *fromaddr, int fromaddrlen);
3.2 Cc hm (tt)
To process con x l tng kt ni:
int fork(void);
int pid;
while(1){
newsockfd = accept(sockfd, (struct sockaddr*)
&cli_addr, &clilen);
if ((pid=fork())==0){
close(sockfd);
process(newsockfd);
close(newsockfd)
exit(0);
}
close(newsockfd);
}
49
Tm kim & download ebook: bookilook.com
50
Tm kim & download ebook: bookilook.com
51
Tm kim & download ebook: bookilook.com
52
Tm kim & download ebook: bookilook.com
53
Tm kim & download ebook: bookilook.com
54
Tm kim & download ebook: bookilook.com
55
Tm kim & download ebook: bookilook.com
SOCKADDR_IN ser_addr;
ser_addr.sin_family=AF_INET;
ser_addr.sin_port=htons(2000);
ser_addr.sin_addr.s_addr=
inet_addr(172.28.10.20);
if(connect(s,(LPSOCKADDR)&ser_addr,
sizeof(ser_addr))==SOCKET_ERROR){
MessageBox(Can not connect to server);
}
Lp trnh mng Chng 3 112
56
Tm kim & download ebook: bookilook.com
57
Tm kim & download ebook: bookilook.com
58
Tm kim & download ebook: bookilook.com
59
Tm kim & download ebook: bookilook.com
60
Tm kim & download ebook: bookilook.com
case WM_USER+1 :
OnAccept(); return 1;
case WSA_RDCLOSE :
if (WSAGETSELECTEVENT(lParam) == FD_READ)
Read_Process(wParam);
61
Tm kim & download ebook: bookilook.com
CHNG 4
LP TRNH MNG VI JAVA
62
Tm kim & download ebook: bookilook.com
63
Tm kim & download ebook: bookilook.com
64
Tm kim & download ebook: bookilook.com
4.2 V d (tt)
Chng trnh Client
14. BufferedReader keyInput = new BufferedReader(new
15. InputStreamReader(System.in));
16. System.out.print("Enter sentence to send to server:");
17. String data = keyInput.readLine();
18. output.writeBytes(data+"\n");
19. int recvByte;
20. System.out.print("Data receicved: ");
21. System.out.println(input.readLine());
22. clientsock.close();
23. }//main
24. }//class
65
Tm kim & download ebook: bookilook.com
4.2 V d (tt)
Chng trnh Server
1. //file Server.java
2. import java.net.*;
3. import java.io.*;
4. public class Server{
5. public static void main(String args[]) throws Exception{
6. ServerSocket serversock = new ServerSocket(2000);
7. DataOutputStream output;//stream xuat du lieu
8. BufferedReader input;//stream doc du lieu
9. for(;;){
10. Socket client = serversock.accept();
11. output = new DataOutputStream(
12. client.getOutputStream());
4.2 V d (tt)
Chng trnh Server (tt)
13. input = new BufferedReader(new
14. InputStreamReader(client.getInputStream()));
15. String data = input.readLine();
16. System.out.println("Recv from client: "+data);
17. output.writeBytes(data+"\n");
18. output.flush();
19. }//for
20. } //main
21. }//class
66
Tm kim & download ebook: bookilook.com
67
Tm kim & download ebook: bookilook.com
68
Tm kim & download ebook: bookilook.com
69
Tm kim & download ebook: bookilook.com
70
Tm kim & download ebook: bookilook.com
71
Tm kim & download ebook: bookilook.com
72
Tm kim & download ebook: bookilook.com
73
Tm kim & download ebook: bookilook.com
74
Tm kim & download ebook: bookilook.com
75