mpthserv.c
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAX 10
#define SERVER_PORT 5555
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
char clntName[INET_ADDRSTRLEN];
int serverSocket;
struct sockaddr_in server_addr;
struct sockaddr_in clientAddr;
int addr_len=sizeof(clientAddr);
int client;
char buffer[1024];
char sendbuf[1024];
int iDataNum;
void *thread1()
{
iDataNum=recv(client,buffer,1024,0);
if(iDataNum<0){
printf("recv() failed\n");
continue;
}
printf("client:> %s\n",buffer);
}
}
void *thread2()
{
scanf("%s",sendbuf);
if(strcmp(sendbuf,"quit")==0)
break;
send(client,sendbuf,200,0);
}
void thread_create(void)
{
}
void thread_wait(void)
{
pthread_join(thread[0],NULL);
pthread_join(thread[1],NULL);
}
}
int main()
{
if((serverSocket=socket(AF_INET,SOCK_STREAM,0))<0){
printf("socket() failed\n");
exit(1);
}
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
server_addr.sin_port=htons(SERVER_PORT);
if(bind(serverSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){
printf("bind() failed\n");
exit(1);
}
if(listen(serverSocket,5)<0){
printf("listen() failed\n");
}
while(1){
client=accept(serverSocket,(struct sockaddr *)&clientAddr,(socklen_t *)&addr_len);
if(client<0){
printf("accept() failed\n");
continue;
}
//
pthread_mutex_init(&mut,NULL);
}
}
mpthcli.c
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAX 10
#define SERVER_PORT 5555
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
struct sockaddr_in serverAddr;
int clientSocket,iDataNum;
char sendbuf[200];
char recvbuf[200];
void *thread1()
{
scanf("%s",sendbuf);
if(strcmp(sendbuf,"quit")==0)
break;
send(clientSocket,sendbuf,200,0);
}
void *thread2()
{
iDataNum=recv(clientSocket,recvbuf,1024,0);
if(iDataNum<0){
printf("recv() failed\n");
continue;
}
printf("Server:>%s\n",recvbuf);
}
void thread_create(void)
{
}
void thread_wait(void)
{
}
int main()
{
if((clientSocket=socket(AF_INET,SOCK_STREAM,0))<0){
printf("socket() failed\n");
exit(1);
}
serverAddr.sin_family=AF_INET;
serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
serverAddr.sin_port=htons(5555);
if(connect(clientSocket,(struct sockaddr *)&serverAddr,sizeof(serverAddr))<0){
printf("connect() failed\n");
exit(1);
}
close(clientSocket);
}