服务器端:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
typedef struct sockaddr SOCKADDRMY;
int main()
{
int sockID;
struct sockaddr_in srvAddr;
sockID = socket(AF_INET, SOCK_STREAM, 0);
srvAddr.sin_family = AF_INET;
srvAddr.sin_port = htons(8888);
srvAddr.sin_addr.s_addr = inet_addr("192.168.28.69");
bind(sockID, (SOCKADDRMY*)&srvAddr, sizeof(srvAddr));
listen(sockID, 5);
while(1)
{
int clisock;
int nLen = sizeof(SOCKADDRMY);
SOCKADDRMY cliAddr;
char buf[128] = {0};
char sendBuf[] = "this is server\n";
clisock = accept(sockID, &cliAddr, &nLen);
recv(clisock, buf, 128, 0);
printf("%s\n", buf);
send(clisock, sendBuf, strlen(sendBuf)+1, 0);
close(clisock);
}
close(sockID);
}
客户端:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
typedef struct sockaddr SOCKADDRMY;
int main()
{
int sockCli;
struct sockaddr_in srvAddr;
char sendBuf[] = "this is client!\n";
char recvBuf[128] = {0};
int nRes = 0;
sockCli = socket(AF_INET, SOCK_STREAM, 0);
srvAddr.sin_family = AF_INET;
srvAddr.sin_port = htons(8888);
srvAddr.sin_addr.s_addr = inet_addr("192.168.28.69");
nRes = connect(sockCli, (SOCKADDRMY*)&srvAddr, sizeof(srvAddr));
if(nRes != 0)
{
perror("connect error");
}
send(sockCli, sendBuf, strlen(sendBuf) + 1, 0);
recv(sockCli, recvBuf, 128, 0);
printf("%s\n", recvBuf);
close(sockCli);
return 0;
}