socket的客户端-服务器程序

客户端程序:

通过服务器返回当前的时间和日期。

#include "unp.h"

#include "my_err.h"

int main(int argc, char** argv)

{

int sockfd, n;

char recvline[MAXLINE + 1];

struct sockaddr_in servaddr;

if (argc != 2)

err_quit("usage:a.out<IPaddress>");

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)

err_sys("socket error");

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(13);

if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)

err_quit("inet_pton error for %s", argv[1]);

if (connect(sockfd, (SA*)&servaddr, sizeof(servaddr)) < 0)

err_sys("connect error");

while ((n = read(sockfd, recvline, MAXLINE)) > 0)

{

recvline[n] = 0;

if (fputs(recvline, stdout) == EOF)

err_sys("fputs error");

服务器端程序:

获得客户端端的IP和端口号。inet_ntop将套接字地址结构中的32位IP地址转换为一个点分十进制ASCII字符串,调用nthos将16位的端口号从网络字节序转换为主机字节序。

int main(int argc, char** argv)

{

int listenfd, connfd;

socklen_t len;

struct sockaddr_in servaddr, cliaddr;

char buff[MAXLINE];

teme_t ticks;

listenfd = socket(AF_INET, SOCK_STREAM, 0);

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

servaddr.sin_port = htons(13);

bind(listenfd, (SA*)&servaddr, sizeof(servaddr));

listen(listenfd, LISTENQ);

for (;;)

{

len = sizeof(cliaddr);

connfd = accept(listenfd, (SA*)&cliaddr, &len);

printf("connection from %s,port %d \n", inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff)),ntohs(cliaddr.sin_port));

ticks = time(NULL);

snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));

crite(connfd, buff, strlen(buff));

close(connfd);

}

}

时间: 2024-08-27 13:10:23

socket的客户端-服务器程序的相关文章

[Netty] - Netty入门(最简单的Netty客户端/服务器程序)

Java中的NIO是一种解决阻塞式IO问题的基本技术,但是NIO的编写对java程序员是有比较高的要求的.那么Netty就是一种简化操作的一个成熟的网络IO编程框架.这里简单介绍一个程序,代码是<netty in action>里面的,不过那个里面的实例有点问题,反正我没有跑成功,修改后成功.直接上代码: 一.服务器编写 Server代码,监听连接 1 package com.gerry.netty.server; 2 3 import io.netty.bootstrap.ServerBoo

Unix网络编程学习笔记之第5章 TCP客户端/服务器程序示例

一. 一个简单TCP回射服务端程序 #include "unp.h" #define MAXLINE 1024 #define PORT 13 #define CONMAX 5 void err_sys(const char* s) { fprintf(stderr, "%s\n",s); exit(1); } void str_echo(int connfd) { int nbyte; char buff[MAXLINE+1]; again: while(nbyt

[转]Netty入门(最简单的Netty客户端/服务器程序)

Java中的NIO是一种解决阻塞式IO问题的基本技术,但是NIO的编写对java程序员是有比较高的要求的.那么Netty就是一种简化操作的一个成熟的网络IO编程框架.这里简单介绍一个程序,代码是<netty in action>里面的,不过那个里面的实例有点问题,反正我没有跑成功,修改后成功.直接上代码: 一.服务器编写 Server代码,监听连接 1 package com.gerry.netty.server; 2 3 import io.netty.bootstrap.ServerBoo

简易socket 多线程客户端 服务器

简易客户端: import socket client = socket.socket() client.connect(('localhost',9999)) while True: msg = input('>>:').strip() if len(msg) == 0:continue client.send(msg.encode('utf-8')) data = client.recv(1024) print(data) client.close() 多线程服务器: import soc

最简单的回射客户/服务器程序、time_wait 状态

下面通过最简单的客户端/服务器程序的实例来学习socket API. echoser.c 程序的功能是从客户端读取字符然后直接回射回去. C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6

socket的客户端和服务端(Windows控制台程序)

首先是两个程序,分别是socket的客户端和服务端.(在windows系统vc6.0编译)服务器端:#include <Winsock2.h>#include <stdio.h>#pragma comment(lib,"WS2_32.lib")void main(){    WSADATA wsd;    SOCKET server;                                            //服务器socket    SOCKAD

Java网络学习笔记1:用(Server)Socket编写简单的客户/服务器程序

首先需清楚Socket类提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream对象和输出流OutputStream对象.程序只需向数据流写数据,就能向对方发送数据:只需从输入流读数据,就能接收来自对方的数据. 创建服务器程序DemoServer01 public class DemoServer01 { /**  * @author 牧羊的伯格女皇  11/12  * @param args  * 创建服务端与客户端之间的相互通信

[socket编程] 一个服务器与多个客户端之间通信

转自:http://blog.csdn.net/neicole/article/details/7539444 并加以改进 Server程序: 1 // OneServerMain.cpp 2 3 #include <iostream> 4 #include <cstdio> 5 #include <string> 6 #include <cstring> 7 #include <vector> 8 #include <iterator&g

Socket编程(简易聊天室客户端/服务器编写、CocoaAsyncSocket)

Socket编程(简易聊天室客户端/服务器编写.CocoaAsyncSocket) 一.Socket 1.1 Socket简介 Socket就是为网络服务提供的一种机制.网络通信其实就是Socket间的通信,通信的两端都是Socket,数据在两个Socket间通过IO传输. 在Web服务大行其道的今天,调用Web服务的代价是高昂的,尤其是仅仅是抓取少量数据的时候尤其如此.而使用Socket,可以只传送数据本身而不用进行XML封装,大大降低数据传输的开销.Socket允许使用长连接,允许应用程序运